相对,直接URL
本文关键字:URL 直接 相对 | 更新日期: 2023-09-27 18:16:36
我有一个关于我的URL的小问题。
我在asp页面上使用树形视图,这就是为什么我使用这个getcurrentdirectory。
//DirectoryInfo di = new DirectoryInfo("~" + GetTheCurrentDirectory
(selectedNodeValue));
~ = C://Inetpub//WwwRoot//
GetTheCurrentDirectory = Projects//Folder1//
暂时还好,因为我可以加载一个文件夹的所有文件
当我试着下载文件时,你点击它。
protected void Page_Load(object sender, EventArgs e)
{
string path = Request["path"].ToString();
string filename = Request["file"].ToString();
fileDownload(filename, Server.MapPath("~''" + path + filename));
}
所以我可以检索路径,即当前目录。我在另一个页面中使用的方法。
在服务器中。我应该把~也放在MapPatch上吗?因为当我这样做是在本地工作,但当我把它放在我的服务器上,下载部分不工作,所以我想这是一个URL问题,我无法调试,所以我真的失去了这个!
我改变了一些东西:
DirectoryInfo di = new DirectoryInfo(gettheccurrentdirectory (selectedNodeValue));
返回的结果是一样的
现在在服务器中。MapPath路径等于Projects//Folder 1//
试试这个:
fileDownload(filename, Server.MapPath("~/" + path + filename));
而且,作为最佳实践,不要使用+来连接字符串。你应该使用字符串。格式,所以我将上面的行写成如下:
fileDownload(filename, Server.MapPath(string.format("~/{0}{1}", path, filename)));
只是为了帮助你更好地理解你的问题,服务器。MapPath将返回服务器上的物理文件路径,该路径对应于web服务器上的虚拟路径。例如,它将"http://website.com/img.jpg"转换为"C:'mywebsite'img.jpg"
更新:请确保您要保存文件的文件夹不是只读的,并且您具有在该文件夹中创建文件的权限。