1.TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。
string fileName = "规划信息数据库字段说明.doc"; //客户端保存的文件名
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
string filename = Server.MapPath("DownLoad/规划信息数据库字段说明.doc");
Response.TransmitFile(filename);
2.用流的形式下载
string fileName = "规划信息数据库字段说明.doc"; //客户端保存的文件名
string filePath = Server.MapPath("DownLoad/规划信息数据库字段说明.doc");//路径
//以字符流的形式下载文件
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length); //读取到指定的数组里
fs.Close();
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();