下载文件的方法

1、后台数据库中保存的是文件的相对路径:/**/**/文件名.xls

2、前台JS

let path = escape(url);
                let name = url.split('/');
                var a = document.createElement('a');
                a.download = name[name.length - 1];
                a.href = '路径?path=' + path;
                $("body").append(a);
                a.click();
                $(a).remove();

3、后台

public void DownLoadFile(string path)
        {
            string newpath = Server.UrlDecode(path);
            string[] filepara = newpath.Split('/');
            string fileName = filepara[filepara.Length - 1];//客户端保存的文件名 
            string filePath = Server.MapPath(newpath);
            
            if (!string.IsNullOrEmpty(newpath))
            {
                try
                {
                    HttpResponse response = System.Web.HttpContext.Current.Response;
                    FileInfo fi = new FileInfo(filePath);

                    if (fi.Exists)
                    {
                        response.Clear();
                        response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpContext.Current.Server.UrlEncode(fileName));
                        response.AddHeader("Content-Length", fi.Length.ToString());
                        response.ContentType = "application/octet-stream";
                        response.Filter.Close();
                        response.WriteFile(fi.FullName);
                        response.End();
                    }
                    else
                    {
                        response.Status = "404 File Not Found";
                        response.StatusCode = 404;
                        response.StatusDescription = "File Not Found";
                        response.Write("File Not Found");
                        response.End();
                    }
                }
                catch (Exception)
                {

                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值