C# mvcwebapi中文件的真实物理路径

C# mvcwebapi中文件的真实物理路径,c#,asp.net-mvc-4,asp.net-web-api,C#,Asp.net Mvc 4,Asp.net Web Api,我正在使用MVCWebAPI构建一个示例应用程序。我正在从POST请求中获取文件名。如果我使用下面的代码获取文件的物理路径,它将返回应用程序文件夹的路径,而不是我的另一个驱动器中的文件路径(例如D:drive) HttpContext.Current.Server.MapPath始终提供从目录根到当前工作目录的绝对路径 如果要从特定目录读取文件,请执行以下操作: 确定文件可用的公共路径,例如D:\ 将此web.config文件路径放在“应用程序设置”下,名称为“FileDirectory” 将

我正在使用MVCWebAPI构建一个示例应用程序。我正在从POST请求中获取文件名。如果我使用下面的代码获取文件的物理路径,它将返回应用程序文件夹的路径,而不是我的另一个驱动器中的文件路径(例如D:drive)


HttpContext.Current.Server.MapPath
始终提供从目录根到当前工作目录的绝对路径

如果要从特定目录读取文件,请执行以下操作:

  • 确定文件可用的公共路径,例如
    D:\
  • 将此web.config文件路径放在“应用程序设置”下,名称为“FileDirectory”
  • FileDirectory
    (从appsettings中读取后)的路径与您的文件合并,比如说
    path。合并(FileDirectory,file)

您将获得该文件。

我建议您这样做:

1. Create a application setting:

      <appSettings >
        <add key="FolderPath" value="D:\"/>
      </appSettings>
2. Change your code:
    string root= ConfigurationManager.AppSettings["FolderPath"].ToString();
    var physicalFilePath =root + fileName;
1。创建应用程序设置:
2.更改您的代码:
字符串根=ConfigurationManager.AppSettings[“FolderPath”].ToString();
var physicalFilePath=根+文件名;

请使用下面的语句

HttpContext.Current.Request.PhysicalApplicationPath + "/" + fileName

很抱歉,这是我的错别字,我只使用“~/”这个;)我确定文件名不是空的,IIS中的虚拟目录是什么?你能帮我解决这个问题吗?我不知道sec的问题?忽略虚拟目录,我糟糕的英语~你能在这里显示你的
文件名
,以及
结果吗?“D:\Harender\DotNetPractice\mvcapapplication1\mvcapapplication1\student.xls”这里student.xls是我的应用程序文件夹的文件名和其他路径。我的文件的实际路径是D:\student.xls。您的文件不属于您的应用程序!你可以直接使用
“D:\”+fileName
,没有必要使用
MapPath
是的,我一开始是这么想的,但我觉得一定有一种内置的方法可以做到这一点。
HttpContext.Current.Request.PhysicalApplicationPath + "/" + fileName