相对,直接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//

相对,直接URL

试试这个:

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"

更新:请确保您要保存文件的文件夹不是只读的,并且您具有在该文件夹中创建文件的权限。