虚拟路径问题

时间:2011-09-27 08:31:39

标签: c#

Hello Code Experts, 我正在将一些文件上传到虚拟目录。对于虚拟目录,我给出的路径如

"/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/";

它在我的本地工作正常,但不在实时服务器中。它不是在实时服务器上传文件。

如果我将其更改为

"~/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/";

然后它会起作用吗?如果没有,那么我该如何将其映射到虚拟目录?

3 个答案:

答案 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,以了解与虚拟和绝对路径有关的情况。您可能还在服务器上遇到安全问题,特别是如果您正好在应用程序目录外编写。当然,在这种情况下会出现异常。