如何在不包含脚本名称的情况下获取服务器名称 + 文件夹名称?
string filePath = Request.QueryString.Get("filepath");
string serverPath = Request.ServerVariables["SERVER_NAME"] + "/";
string fullUrl = "http://" + serverPath + filePath;
Response.Write(fullUrl);
上面的代码缺少文件夹名称。
如何在不包含脚本名称的情况下获取服务器名称 + 文件夹名称?
string filePath = Request.QueryString.Get("filepath");
string serverPath = Request.ServerVariables["SERVER_NAME"] + "/";
string fullUrl = "http://" + serverPath + filePath;
Response.Write(fullUrl);
上面的代码缺少文件夹名称。
您不能完全做到这一点,因为 HTTP 对什么是文件夹和什么是文件“视而不见”。
您可能熟悉诸如http://www.acme.com/products/view.asp之类的 URL,但完全有效的 URL 也可能是http://www.acme.com/products/view,因此您不能区分文件夹和文件名。
您可以做什么,前提是:
就是自己解析路径字符串,在路径末尾寻找file.ext模式。
本页演示了 HttpRequest 的各个部分是如何分解的。您可以Request.FilePath
像这样获取并删除最后一段:
string directory = Request.FilePath.Remove(Request.FilePath.LastIndexOf('/'));