我正在使用VS 2012开发Asp.Net MVC 4应用程序。在本地运行时的应用程序使用IIS Express作为Web服务器。我在尝试访问作为我的解决方案一部分的文件时遇到问题。我有以下行动方法:
public FileContentResult GetImage()
{
byte[] imageByte = System.IO.File.ReadAllBytes(@"/MyPics/My.jpg");
string contentType = "image/jpeg";
return File(imageByte, contentType);
}
在第一行中,我收到以下错误:
Could not find a part of the path 'C:\Program Files (x86)\IIS Express\~\MyPics\My.jpg'
我知道上述路径不正确,但我无法理解为解决此问题应该提供哪条路径。
此致 Pawan Mishra
答案 0 :(得分:9)
您可以使用Server.MapPath()来获取如下所示的实际目录:
byte[] imageByte = System.IO.File.ReadAllBytes(Server.MapPath("~/MyPics/My.jpg"));
有些人主张使用HostingEnvironment.MapPath()代替:What is the difference between Server.MapPath and HostingEnvironment.MapPath?