我使用以下代码从 ASP.NET Core API 返回一个文件:
app.MapGroup("file").MapGet("/export", async () =>
{
var fileStream = someCode1();
var fileType= someCode2();
var fileName= someCode3();
return Results.File(
fileStream,
fileType.ToMimeType(),
fileName.Full);
}
我注意到我也可以使用
Results.Stream()
代替,文件下载仍然可以正常进行。有谁知道这两种方法有什么区别以及什么时候应该使用它们?
Results.File
:https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.results.file?view=aspnetcore-8.0
Results.Stream
:https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.results.stream?view=aspnetcore-8.0
Results.File
的文档指出:
此 API 是 Stream(Stream, String, String, Nullable, EntityTagHeaderValue, Boolean)的别名。
Results.File
和 Results.Stream
最终都会返回同一 FileStreamHttpResult
类的实例。