我正在从服务器下载文件,文件存在于与项目不在同一目录中的其他磁盘上
我的 Controller 代码是
public ActionResult GetFileFromDisk()
{
string PATH = @"E:\10-FEB-2012\DIR1\DIR2";
return File(Server.MapPath( (PATH + fileName ), type, fileName);
}
如果我不会使用在我的计算机上运行的 Server.MapPath 代码,但是当我在服务器上部署应用程序时会出现错误
最佳答案
由于它已经是物理地址,所以不需要使用mappath来转换它。 MapPath用于将虚拟路径转换为物理路径。您可以检查服务器驱动器上是否存在该文件?另请检查它可能需要 IIS_User 或 network_service 的权限。
我通常加载文件,然后使用流作为文件结果。 使用 File(Stream stream, string contentType, string fileName) 的重载
FileInfo info = new FileInfo(packageItem.PhysicalPath);
if (info.Exists)
{
return File(info.OpenRead(), System.Net.Mime.MediaTypeNames.Application.Octet, info.Name);
}
关于asp.net-mvc - “不是虚拟路径”,下载文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9255842/