虚拟路径问题
本文关键字:问题 路径 虚拟 | 更新日期: 2023-09-27 18:09:39
大家好,我正在上传一些文件到一个虚拟目录。对于虚拟目录,我给的路径是
"/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/";
它在我的本地工作很好,但不是在实时服务器。
如果改成
"~/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/";
那么它会工作吗?如果不是,我该如何将其映射到虚拟目录?
使用服务器。MapPath函数
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspxServer.MapPath("~/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/");
阅读文档了解~的含义。你会发现第二种方法总是有效的,而第一种方法则不然。第一个假设文件夹是/Uploads(在web服务器根目录下)
+1到@MarkisT。我建议你也让框架为你做这些组合:
http://msdn.microsoft.com/en-us/library/dd782933.aspxusing System.IO;
using System.Web;
var path = Path.Combine("~/Uploads", DataBaseName, REOID, "ExternalDocument");
var fullPath = Server.MapPath(path);
如果你仍然有问题;建议您检查本地和服务器上的fullPath,以了解与虚拟路径和绝对路径相关的情况。您还可能在服务器上遇到安全问题,特别是当您碰巧在应用程序目录之外编写时。当然,在这种情况下会出现异常。