提供IIS外部文件的链接

时间:2011-08-25 11:18:57

标签: c# asp.net

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

2 个答案:

答案 0 :(得分:1)

您需要在WebApplication中为该Windows文件夹创建一个虚拟文件夹。一旦IIS映射了虚拟文件夹,就可以使用直接链接,这将使您的WebApplication成为根。

答案 1 :(得分: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>

这允许您在使用登录系统时检查用户权限,还可以针对某些白名单检查所请求的文件,以防止黑客攻击。