我使用此代码为我的LinkButton下载文件时单击它。 最近我遇到了这个问题,我需要一条虚拟路径。
我想重定向到C:\inetpub\wwwroot
string filepath = Server.MapPath("...");
FileInfo myfile = new FileInfo(filepath);
所以我不知道在Server.MapPath()中放什么,因为如果我把它放到我的文件夹文件的基础而没有In
答案 0 :(得分:2)
您目前在My Documents
下面看到一个文件夹,因为您正在项目文件夹中运行/调试,可能使用的是开发服务器或IISExpress。
只要您将网站部署到C:\Inetpub
下的文件夹,MapPath
就会返回该文件夹。
但是,作为安全措施,您无法将应用程序中的根文件夹更高(在树中)返回。
如果需要,您必须自己从返回的路径中删除文件夹。您可以使用System.IO.Path
。
答案 1 :(得分:1)
您不能从根向上移动。 root表示应用程序的根文件夹。如果你这样做,那就是安全漏洞。
因此,如果您希望转到应用程序的根目录,可以使用Server.MapPath("~");
答案 2 :(得分:1)
如果您需要从系统的其他部分提供文件,那么最好的方法是创建虚拟目录。
在IIS中右键单击您的网站,单击“添加虚拟目录”。给它一个名字,并指出它你需要它。例如。名为'files'的新虚拟目录,指向'C:\ inetpub \ wwwroot \ files'。
然后,从您的网站中,您可以使用
引用这些文件/files/filename.txt< - / files / 将链接到您的虚拟目录。
然后,您当然需要确保正确设置权限以阅读这些文件,但我会将其留给您。
答案 3 :(得分:0)
Server.MapPath("~");
将为您提供当前的Web应用程序根目录。