当您单击它时,我正在使用此代码将其链接下载文件。最近我遇到了这个问题,我需要一个虚拟路径。

我想重定向 C:\inetpub\wwwroot

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

因此,我不知道该放入server.mappath()中,因为如果我放置 /它将转到文件夹文档的底部,而无需

有帮助吗?

解决方案

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

在IIS右手中,单击您的网站,单击“添加虚拟目录”。给它一个名字,并在任何需要的地方指向它。例如,新的虚拟目录称为“文件”指向“ c: inetpub wwwroot files”。

然后,从您的网站内部,您可以使用

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

然后,您当然需要确保您设置了正确的权限来读取这些文件,但我会将其保留给您。

其他提示

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

一旦将网站部署到下面的文件夹 C:\Inetpub, , 这 MapPath 将返回该文件夹。

但是,作为一种安全措施,您无法将文件夹(在树中)返回到应用程序中的根文件夹。

如果需要,则必须自己从返回的路径中删除文件夹。您可以使用 System.IO.Path 为了那个原因。

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

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

Server.MapPath("~"); 

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top