2011-08-25 46 views
0

我的系统中有一个上传功能,用于将文件存储在d盘上,例如D:\ KBFiles。现在我需要通过Internet Explorer提供这些文件作为链接。显然,我不能提供一个路径,例如D:\ KBFiles \ test.pdf。什么是处理这种情况的最佳方式提供指向IIS之外的文件的链接

回答

1

写“代理”文件,这样的代码,并调用它DownloadFile.aspx

string fileName = Request.QueryString["file"]; 
string filePath = Path.Combime("D:\\KBFile", fileName); 
Response.WriteFile(filePath); 

然后有这样的链接:

<a href="DownloadFile.aspx?file=test.pdf">test.pdf</a> 

这使您可以检查用户权限,如果你使用的登录系统,你也可以检查所需的文件对白名单,以防止黑客攻击企图。

1

您需要为您的WebApplication中的windows文件夹创建一个虚拟文件夹。只要IIS映射了虚拟文件夹,就可以使用直接链接,这会将WebApplication作为根目录。