点击按钮直接下载文件(隐藏文件路径)
2005-08-12 23:29
281 查看
在ASP.NET中,有两个控件可以提供客户下载服务器端的文件:HyperLink控件和LinkButton控件(还没用过),HyperLink控件这个控件只能通过相对路径找到要下载的文件,而且更糟糕的是暴露了文件在服务器中的路径,可能会引出很多麻烦。
这里我们通过设置Http的Header来实现客户端下载的功能。这种方法不用打开一个新的IE窗口,Client端也看不到文件的路径,比较完美的实现了我想要的功能。现贴出代码,大家分享一下FileStream fileStream=new FileStream("D:\\documents\\test.doc",FileMode.Open);
long fileSize = fileStream.Length;
Context.Response.ContentType="application/octet-stream";
//中文文件名需要UTF8编码
Context.Response.AddHeader("Content-Disposition","attachment; filename=\"" + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + "\"");
Context.Response.AddHeader("Content-Length",fileSize.ToString());
byte[] fileBuffer=new byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
fileStream.Close();
Context.Response.BinaryWrite(fileBuffer);
Context.Response.End();
这里我们通过设置Http的Header来实现客户端下载的功能。这种方法不用打开一个新的IE窗口,Client端也看不到文件的路径,比较完美的实现了我想要的功能。现贴出代码,大家分享一下FileStream fileStream=new FileStream("D:\\documents\\test.doc",FileMode.Open);
long fileSize = fileStream.Length;
Context.Response.ContentType="application/octet-stream";
//中文文件名需要UTF8编码
Context.Response.AddHeader("Content-Disposition","attachment; filename=\"" + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + "\"");
Context.Response.AddHeader("Content-Length",fileSize.ToString());
byte[] fileBuffer=new byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
fileStream.Close();
Context.Response.BinaryWrite(fileBuffer);
Context.Response.End();
相关文章推荐
- 点击按钮直接下载文件(隐藏文件路径)
- PHP实现点击a标签的href做链接时,直接保存文件(任何类型),而不是通过浏览器直接打开下载的文件
- Web共享文件,隐藏文件路径方式下载
- 如何使用Asp来隐藏文件的实际下载路径
- Java点击下载按钮弹出下载文件对话框
- android点击按钮跳转到内存并获取选取的文件路径
- 点击按钮下载本地文件
- 以流的方式下载文件,隐藏实际的下载路径
- asp 点击直接下载文件和图片-示例
- PHP之FOPEN隐藏文件下载路径
- JS直接实现点击下载某文件,激活IE另存为行为
- 使用js实现点击按钮下载文件
- nginx+防盗链+下载大文件+路径直接获取文件
- ASP实现点击链接直接下载文件
- JS直接实现点击下载某文件,激活IE另存为行为
- 按钮点击跳出文件保存路径目录
- PyQt通过点击按钮选择文件并显示相对路径的例子
- ASP和C#隐藏文件下载路径的方法
- 点击按钮下载文件
- Java Swing之按钮点击选择文件与获取选中文件绝对路径