2

当您单击它时,我正在为我的 LinkBut​​ton 使用此代码来下载文件。最近我遇到了这个问题,我需要一个虚拟路径。

我想重定向到C:\inetpub\wwwroot

 string filepath = Server.MapPath("...");           
 FileInfo myfile = new FileInfo(filepath);

所以我不知道在 Server.MapPath() 中放什么,因为如果我放 / 它将进入我的文件夹文档的基础,而不是 In

4

4 回答 4

3

如果您需要从系统的另一部分提供文件,那么最好的方法是创建一个虚拟目录

在 IIS 中右键单击您的网站,单击“添加虚拟目录”。给它起个名字,然后把它指向你需要的地方。例如,名为“files”的新虚拟目录指向“C:\inetpub\wwwroot\files”。

然后在您的站点中,您可以使用

/files/filename.txt <- /files/将链接到您的虚拟目录。

然后,您当然需要确保您的权限设置正确以读取这些文件,但我将由您决定。

于 2011-11-29T10:24:13.677 回答
2

你不能从你的根上移。根是指应用程序的根文件夹。如果您正在尝试这样做,那就是安全漏洞。

因此,如果您想进入应用程序的根目录,您可以使用Server.MapPath("~");

于 2011-11-29T10:18:03.920 回答
2

您当前在您的文件夹下看到一个文件夹,My Documents因为您正在项目文件夹中运行/调试,可能使用开发服务器或 IISExpress。

将站点部署到 下的文件夹C:\Inetpub后,MapPath将返回该文件夹。

但是,作为一项安全措施,您不能从应用程序返回更高的文件夹(在树中)作为根文件夹。

如果需要,您必须自己从返回的路径中删除文件夹。你可以使用System.IO.Path它。

于 2011-11-29T10:44:15.210 回答
1
Server.MapPath("~"); 

将为您提供当前的 Web 应用程序根目录。

于 2011-11-29T10:14:07.230 回答