1

我正在研究最小的 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 以下载文件时,我该怎么做?

提前致谢

4

1 回答 1

5

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

app.MapGet("/download", () =>
{
    var mimeType = "image/png";
    var path = @"path_to_png.png";
    return Results.File(path, contentType: mimeType);
});
于 2022-01-04T15:34:46.687 回答