虚拟路径问题

本文关键字:问题 路径 虚拟 | 更新日期: 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.aspx

Server.MapPath("~/Uploads/" + DatabaseName + "/" + REOID + "/" + "ExternalDocument" + "/");

阅读文档了解~的含义。你会发现第二种方法总是有效的,而第一种方法则不然。第一个假设文件夹是/Uploads(在web服务器根目录下)

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