//WriteFile (下载大文件报错 iis Express 100多M、iis 最多2G),然后下载大文件非常耗内存,很容易把服务器搞挂,不建议使用此方法

 public void FileDownload3()
        {
            string fileName = "新建文件夹2.rar";//客户端保存的文件名 
            string filePath = Server.MapPath("/App_Data/新建文件夹2.rar");//要被下载的文件路径 
            FileInfo fileInfo = new FileInfo(filePath);
            Response.Clear();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + "\"");
            Response.AddHeader("Content-Length", fileInfo.Length.ToString());//文件大小
            Response.AddHeader("Content-Transfer-Encoding", "binary");
            Response.ContentType = "application/octet-stream";
            Response.WriteFile(fileInfo.FullName);//大小参数必须介于零和最大的 Int32 值之间(也就是最大2G,不过这个操作非常耗内存)
            //这里容易内存溢出
            Response.Flush();
            Response.End();
        }

猜你喜欢

转载自www.cnblogs.com/fsl123/p/9439328.html