public async Task<IActionResult> OnGet()
{
new FileExtensionContentTypeProvider().TryGetContentType(path, out var mimeType);
var basename = Path.GetFileName(path);
Response.Headers.Add("Content-Disposition", $"attachment; filename={basename};");
return new FileStreamResult(System.IO.File.OpenRead(path), mimeType);
}
1条答案
按热度按时间fslejnso1#
为了提示浏览器下载它通常会呈现的响应,您可以将
Content-Disposition
头设置为“附件”并提供文件名。此示例假设您正在执行Razor Page处理程序,并且已经从某处获得path
:大多数浏览器会显示一个下载对话框,或者使用文件头中的文件名将文件下载到默认位置。
与其新建
FileExtensionContentTypeProvider
,不如将其注册为一个服务,并将其依赖注入到页面模型的构造函数中(或者做其他事情):