关于附件下载的路径处理

在网站附件下载中,往往我们不要直接暴露附件的存放地址,比如:

<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

这种形式是不是美观多了。

 

posted on 2013-06-06 20:45  吴一达  阅读(267)  评论(0编辑  收藏  举报

导航