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;
});
浙公网安备 33010602011771号