在网站附件下载中,往往我们不要直接暴露附件的存放地址,比如:
<a href='file/test.doc'>《我的成功可以复制》</a>
点击下载的时候链接就是
http://192.169.1.87/file/test.zip
这样总感觉不够好,太直接了,我们可以使用Response.WriteFile的输出方式来隐藏路径,变成http://192.169.1.87/dowfile.aspx?fid=13的形式来。
在系统中,往往我们是把附件信息存放到数据表中的,比如文件名称,路径,文件格式等等。
假如现已经获取到文件名和存放路径
string fileName="《我的成功可以复制》"; string filePath="2013/2/22/test.zip"; string fileUrl="D://file/"+filePath; if (!System.IO.File.Exists(fileUrl)) { Response.Write("no file"); return; } Response.Clear(); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment;filename=" +fileName); Response.WriteFile(fileUrl); Response.End();
这样就完成了。
http://192.169.1.87/dowfile.aspx?fid=13
这种形式是不是美观多了。