ASP.NET文件下载的几种方法
2007-03-29 14:46
746 查看
当服务器要提供文件下载时,HttpResponse有这么几种方法可以使用。
1)用Response.WriteFile,如:
Response.ContentType = "application/octet-stream";
Response.WriteFile(@"whatever.zip");
2) 采用aspnet2.0的新方法 Response.TransmitFile,注意此方法将指定的文件直接写入 HTTP 响应输出流,而不在内存中缓冲该文件。如:
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=downloadfilename.zip");
Response.TransmitFile(@"whatever.zip");
(假设同文件夹下有个需要下载的文件叫whatever.zip,而用户下载时默认名称为downloadfilename.zip)
3)需要注意的是,我们都知道Server.ScriptTimeout 的默认值是90秒,而当我们在web.config中打开调试模式,此值变为30,000,000秒。这也是为什么我在开发时一般不会发现超时问题。当下载大文件时,用Response.WriteFile会使Aspnet_wp.exe缓存了太大空间而导致下载失败。
这时建议采用文件流形式。如:
System.IO.Stream iStream = null;
//以10K为单位缓存:
byte[] buffer = new Byte[10000];
int length;
long dataToRead;
// 制定文件路径.
string filepath = @"D:\mybigfile.zip";
// 得到文件名.
string filename = System.IO.Path.GetFileName(filepath);
try
catch (Exception ex)
finally
1)用Response.WriteFile,如:
Response.ContentType = "application/octet-stream";
Response.WriteFile(@"whatever.zip");
2) 采用aspnet2.0的新方法 Response.TransmitFile,注意此方法将指定的文件直接写入 HTTP 响应输出流,而不在内存中缓冲该文件。如:
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=downloadfilename.zip");
Response.TransmitFile(@"whatever.zip");
(假设同文件夹下有个需要下载的文件叫whatever.zip,而用户下载时默认名称为downloadfilename.zip)
3)需要注意的是,我们都知道Server.ScriptTimeout 的默认值是90秒,而当我们在web.config中打开调试模式,此值变为30,000,000秒。这也是为什么我在开发时一般不会发现超时问题。当下载大文件时,用Response.WriteFile会使Aspnet_wp.exe缓存了太大空间而导致下载失败。
这时建议采用文件流形式。如:
System.IO.Stream iStream = null;
//以10K为单位缓存:
byte[] buffer = new Byte[10000];
int length;
long dataToRead;
// 制定文件路径.
string filepath = @"D:\mybigfile.zip";
// 得到文件名.
string filename = System.IO.Path.GetFileName(filepath);
try
catch (Exception ex)
finally
相关文章推荐
- asp.net中 下载文件的几种方法
- ASP.net MVC 文件下载的几种方法
- ASP.NET文件下载的几种方法
- ASP.NET中下载文件的几种方法
- ASP.NET 实现文件下载的几种方法
- asp.net 文件下载的几种方法
- ASP.NET 实现文件下载的几种方法
- ASP.NET文件下载的几种方法
- ASP.Net中的几种文件下载方法
- asp.net C#后台实现下载文件的几种方法
- 【基础】ASP.net MVC 文件下载的几种方法(欢迎讨论)
- ASP.NET文件下载的几种方法
- C# asp.net中四种文件下载方法
- ASP.NET中常用的文件上传下载方法
- Asp.net获取服务器指定文件夹目录文件并提供下载的方法
- ASP.NET批量下载文件的方法
- ASP.NET MVC上传文件的几种方法
- ASP.NET中下载文件的方法
- ASP.NET中文件上传下载方法集合(转)
- ASP.NET中文件上传下载方法集合 .