ASP.NET Minimal API 如何从 URL 返回/下载文件

Teu*_*eun 11 c# asp.net-core-6.0 .net-6.0 c#-10.0 minimal-apis

我正在开发最小的 api,我正在尝试的是当用户访问/download它时立即下载我的图片名为add.png

但无论我尝试什么,它都不起作用,因为我要么得到一个空白页面,只有{}

这可能吗?如果是这样怎么办

这是我迄今为止尝试过的代码。(我对该位置的所有权限都被拒绝访问!)

app.MapGet("/download", async () =>
  {
      var path = "add.png";
      using (var stream = new FileStream(path, FileMode.Open))
      {
          stream.CopyToAsync(stream);
      }
      var ext = Path.GetExtension(path).ToLowerInvariant();
      var result = (ext, Path.GetFileName(path));
      return result;
  });
Run Code Online (Sandbox Code Playgroud)

当用户在我的 api 中执行 /download 并表示他要下载文件时,我该如何执行此操作?

提前致谢

Gur*_*ron 26

您可以使用Results.File返回文件从您的最小 API 处理程序下载:

app.MapGet("/download", () =>
{
    var mimeType = "image/png";
    var path = @"path_to_png.png";
    return Results.File(path, contentType: mimeType);
});
Run Code Online (Sandbox Code Playgroud)