1. 程式人生 > 其它 >asp.net 使用a 標籤下載 url 檔案

asp.net 使用a 標籤下載 url 檔案

js 程式碼

    var a = document.createElement('a');
     a.setAttribute('href', url);
     a.download = "BillingCn_" + makeBillNo + ".pdf";
     a.click();
     a.remove();

注意點:

url:為虛擬路徑,如果是後臺返回http 地址,如:localhost:8888/demo.pdf,則需要後臺將檔案下載到本站,否則前臺會直接開啟檔案而不是彈出下載。

以asp.net aspx 下載pdf 檔案為例

程式碼如下:

後臺c# 程式碼:

 /// <summary>
        /// 刪除空運賬單
        /// </summary>
        /// <param name="billNo"></param>
        /// <returns></returns>
        [WebMethod]

        public  static string MakingBillExportEn(string tdata)
        {

            LayuiResponseBySingle<string> layuiBase = new
LayuiResponseBySingle<string>(); BaseClientHelper basicsClient = new BaseClientHelper(ConfigurationManager.AppSettings["TransitTradeBehand"]); IDictionary<string, string> headerObj = new Dictionary<string, string>(); headerObj.Add("X-USER-LOGINNAME
", CookieHelper.GetValue("UserName")); CreateAirBill paramObj = JsonConvert.DeserializeObject<CreateAirBill>(tdata); BaseResponse<string> airBillCnResponse = basicsClient.ExecutePostSingle<string>("/api/Bill/MakingBillExportEnBySingle", paramObj, headerObj); if (airBillCnResponse.IsOK && airBillCnResponse.Results != null) { layuiBase.code = 0; layuiBase.data = basicsClient.Client.BaseUrl+airBillCnResponse.Results; layuiBase.msg = airBillCnResponse.Message; byte[] bytes = PdfHelper.GetByteByRemoteURL(layuiBase.data); string SavePath = System.Web.HttpContext.Current.Server.MapPath("~/Upload/BillExport/"); if (!Directory.Exists(SavePath)) { Directory.CreateDirectory(SavePath); } string SaveName = Guid.NewGuid().ToString() + ".pdf"; string path = SavePath + SaveName; FileStream fs = new FileStream(path, FileMode.Create);//建立一個檔案流 fs.Write(bytes, 0, bytes.Length);//將byte陣列寫入檔案中 fs.Close();//所有流型別都要關閉流,否則會出現記憶體洩露問題 layuiBase.data = "/Upload/BillExport/" + SaveName; return JsonConvert.SerializeObject(layuiBase); } else { layuiBase.code = 0; layuiBase.data = ""; layuiBase.msg = airBillCnResponse.Message; return JsonConvert.SerializeObject(layuiBase); } }

前臺js方法:

$("#exportCn").on('click', function () {

var checkStatus = table.checkStatus('table-list');
var checkData = checkStatus.data;

var WaybillNO = $("#hidWaybillNo").val();
var makeBillNo = $("#MakeBillNo").find("option:selected").text();
var reqdata = {};
reqdata.BillNo = makeBillNo;
reqdata.OrderNO = WaybillNO;
if (makeBillNo.length <= 0) {

layer.msg("請選賬單");
return false;
}

$.ajax({
cache: false,
async: false,
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
url: '/Tranadmin/ManaWayBill/NewAir/ExportMakeBill.aspx?WBNo=' + WaybillNO + '&&BillNo=' + makeBillNo + '&&Origin=2',
success: function (res) {


var data = res.data;
var url = data;

var a = document.createElement('a');
a.setAttribute('href', url);
a.download = "BillingCn_" + makeBillNo + ".pdf";
a.click();
a.remove();

 

 

}

})
return false;
});