【问题标题】:Additional information: 'M:/uploads/' is a physical path, but a virtual path was expected [duplicate]附加信息:“M:/uploads/”是物理路径,但应该是虚拟路径[重复]
【发布时间】:2014-02-11 01:47:02
【问题描述】:

我需要将上传的文件放到可以从服务器访问的公共驱动器中。但它给了Additional information: 'M:/uploads/' is a physical path, but a virtual path was expected.

 <appSettings>
    <add key="DirPath" value="M:/uploads/"/>
  </appSettings>

代码

String fileName = Path.GetFileNameWithoutExtension(file.FileName);
 String extension = Path.GetExtension(file.FileName);
 var directory = Server.MapPath(@ConfigurationManager.AppSettings["DirPath"]
                                    .ToString(CultureInfo.InvariantCulture));

如何访问该路径?

【问题讨论】:

标签: c# asp.net asp.net-mvc


【解决方案1】:

正如例外明确指出的那样,您不能(实际上您并不需要)将MapPath 用于绝对路径。如果您想在配置中支持绝对路径,则只需检查该值以查看路径是否为绝对路径:

 string directory = @ConfigurationManager.AppSettings["DirPath"]
                                         .ToString(CultureInfo.InvariantCulture)
 if(!(path.Contains(":") || path.Contains(@"\\") || path.Contains(@"//"))
    // convert virtual to physical path
    directory = Server.MapPath();
 else 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多