Asp.net core web api 下载文件 return File 返回500错误 解决方案

分类专栏: 成长的程序员
  1. [HttpGet]
  2. public IActionResult GetTile(int x, int y, int z, int style)
  3. {
  4. var path = TileUtil.GetPath(Config.TilesFloder, (TileStyle)style, x, y, z);
  5. if (!FileUtil.Exists(path))
  6. path = Config.TilesFloder.Combine("noimage.png");
  7. var result = File(path, ContentType.Get(path));
  8. return result;
  9. }

"TilesFloder": "D:/MapTiles"

今天犯了个错误,没搜到解决方案,自己找了半天,开始怀疑框架,偶然发现问题,特此记录,以助他人。

如上述代码,乍一看没问题,可是调用就是500,最后开始怀疑框架有问题,发现参数名已经提示了,

public virtual VirtualFileResult File(string virtualPath, string contentType);

virtualPath,这个方法仅支持相对路径,也就是你放在wwwroot中的文件。。。。

解决方案,用文件流曲线一下

public virtual FileStreamResult File(Stream fileStream, string contentType);
原文地址:https://www.cnblogs.com/qqhfeng/p/14303964.html