Asp.net文件下载的实现
2019-08-05 16:18
1266 查看
原文链接:https://www.geek-share.com/detail/2455697480.html
1 string filePath; // 服务器端文件路径.
2 string fileName; // 下载显示的文件名.
3 if( System.IO.File.Exists( filePath ) )
4 {
5 // 编码以防出现乱码.
6 this.Response.AppendHeader("Content-Disposition", String.Format("attachment; filename=\"{0}\";", HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)));
7
8 Response.ContentType = "application/octet-stream";
9
10 Response.AddHeader( "Content-Length", new System.IO.FileInfo( filePath ).Length.ToString() );
11
12 Response.TransmitFile( filePath );
13
14 this.Response.End();
15
16 }
一种简单的方法, 将服务器端文件的服务器路径直接写到一个LinkButton或者HyperLink的Url中, 让浏览器完成下载. 但这么做不够灵活, 只能在page_load的时候写死每个链接, 且直接使用明文公开文件路径, 大大降低了安全性.
这里我们使用一种基于Response对象的文件传输方法, 改方法同样是基于http协议的.
我们可以在一个按钮的相应函数中写入如下代码:
Code
1 string filePath; // 服务器端文件路径.
2 string fileName; // 下载显示的文件名.
3 if( System.IO.File.Exists( filePath ) )
4 {
5 // 编码以防出现乱码.
6 this.Response.AppendHeader("Content-Disposition", String.Format("attachment; filename=\"{0}\";", HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)));
7
8 Response.ContentType = "application/octet-stream";
9
10 Response.AddHeader( "Content-Length", new System.IO.FileInfo( filePath ).Length.ToString() );
11
12 Response.TransmitFile( filePath );
13
14 this.Response.End();
15
16 }
当然, 也可以提供下载页方式, 把上述代码写入某页面的Page_Load方法中, 在按钮相应方法中调用Response.Redirect访问该下载页即可.
转载于:https://www.cnblogs.com/MolbyHome/archive/2009/06/11/1501287.html
相关文章推荐
- asp.net下载文件实现代码
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载).NET技术
- ASP.NET利用HttpHandler实现多扩展名文件下载 转载
- asp.net中下载文件的实现方法
- asp.net 文件下载实现代码
- 解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常
- 在ASP.NET中下载文件的实现代码
- ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护(示例代码下载)
- asp.net 实现下载服务器上的文件
- ASP.NET中实现直接从网页上下载文件,而不须引用文件URL来下载
- ASP.NET中下载文件的实现
- ASP.NET中实现文件的保护性下载基础篇
- ASP.NET实现文件下载
- asp.net 实现文件下载
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- asp.net 实现数据流文件下载
- 文件的下载(ASP.NET实现邮箱中附件下载的功能)
- 移动项目开发笔记(asp.net中Response.WriteFile()实现文件下载)
- ASP.NET中实现直接从网页上下载文件,而不须引用文件URL来下载
- ASP.NET文件下载简单实现(也可以通过直接读取数据库 大字段文件,如oracle 中的bolg,long raw 等大字段文件)