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