zoukankan      html  css  js  c++  java
  • 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;
    });
  • 相关阅读:
    systemd 启动 logstash 报错 找不到 JAVA_HOME
    Spring boot内置Tomcat的临时目录被删除导致文件上传不了-问题解析
    git error: Your local changes to the following files would be overwritten by merge:xxxxxx ,Please commit your changes or stash them before you merge.的phpstorm解决办法
    thinkcmf 忘记后台登陆密码的解决办法
    thinkcmf 5关闭后台验证码
    centos 7 IP不能访问nginx Failed connect to 185.239.226.111:80; No route to host解决办法
    thinphp5框架遇到 mkdir() Permission denied 解决办法
    mysql 命令行 备份 恢复数据
    centos 7 查询mysql 安装 运行位置
    pycharm 2018.1 激活
  • 原文地址:https://www.cnblogs.com/TallkingIsEasying/p/15043161.html
Copyright © 2011-2022 走看看