asp.net-mvc - “不是虚拟路径”,下载文件时出错

标签 asp.net-mvc

我正在从服务器下载文件,文件存在于与项目不在同一目录中的其他磁盘上

我的 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/

相关文章:

c# - 在 C# 中获取所有 Controller 和操作名称

c# - 处理您的请求时发生错误。请求 ID : 0HLEALBF2I2PS:00000007

asp.net-mvc - 使用 Microsoft ASP.NET Web 优化框架的 MVC4-RC (.net 4.0) 中出现错误

.net - ServiceHost和WebServiceHost有什么区别?

asp.net-mvc - ASP.NET MVC - 强类型 View 模型,它属于哪里?

c# - 为什么同一页面的每个页面加载后内存使用量都会增加

c# - IActionResult 误解

c# - Angular 5 Uncaught( promise 中): Error: StaticInjectorError(AppModule)

.net - 在 ASP.NET MVC 中添加对 View 的引用

asp.net-mvc - ASP.NET MVC Razor 串联