1. 程式人生 > 實用技巧 >Asp.net core web api 下載檔案 return File 返回500錯誤 解決方案

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);