Hello Code Experts, 我正在将一些文件上传到虚拟目录。对于虚拟目录,我给出的路径如
"/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/";
它在我的本地工作正常,但不在实时服务器中。它不是在实时服务器上传文件。
如果我将其更改为
"~/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/";
然后它会起作用吗?如果没有,那么我该如何将其映射到虚拟目录?
答案 0 :(得分:2)
使用Server.MapPath函数
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx
Server.MapPath("~/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/");
答案 1 :(得分:1)
阅读有关〜手段的文档。你会发现第二种方法总是有效的,第一种方法不是。第一个假定文件夹是/ Uploads(在Web服务器根目录下)。
答案 2 :(得分:1)
+1给@MarkisT。建议你让框架为你做组合:
http://msdn.microsoft.com/en-us/library/dd782933.aspx
using System.IO;
using System.Web;
var path = Path.Combine("~/Uploads", DataBaseName, REOID, "ExternalDocument");
var fullPath = Server.MapPath(path);
如果你还有问题;建议你检查本地和服务器上的fullPath,以了解与虚拟和绝对路径有关的情况。您可能还在服务器上遇到安全问题,特别是如果您正好在应用程序目录外编写。当然,在这种情况下会出现异常。