ASP.NET 最小 API 如何 Return/Download 来自 URL 的文件

ASP.NET Minimal API How to Return/Download Files from URL

我正在研究最小 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;
  });

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

提前致谢

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

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