在网站附件下载中,往往我们不要直接暴露附件的存放地址,比如:
<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
这种形式是不是美观多了。