• 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;
    });
  • 相关阅读:
    SQL exists( select 1 from
    svn不知道这样的主机
    SVN 操作指南
    SVN导出/导入、SVN备份/还原 【小白版】
    Asp.net窄屏页面 手机端新闻列表
    装饰者模式
    适配器模式
    原型模式
    建造者模式
    抽象工厂方法
  • 原文地址:https://www.cnblogs.com/TallkingIsEasying/p/15043161.html
Copyright © 2020-2023  润新知