C# 返回文件不强制下载.NET core API中的文件

C# 返回文件不强制下载.NET core API中的文件,c#,.net,.net-core,C#,.net,.net Core,我有一个.NET核心API试图返回一个文件供浏览器在触发时下载 [HttpGet("DownloadFile/{fileId}")] public async Task<ActionResult> DownloadFile(string fileId, CancellationToken cancellationToken = default) { var file = await _fileUploadService.DownloadFile(Guid.

我有一个.NET核心API试图返回一个文件供浏览器在触发时下载

[HttpGet("DownloadFile/{fileId}")]
public async Task<ActionResult> DownloadFile(string fileId, CancellationToken cancellationToken = default)
{
    var file = await _fileUploadService.DownloadFile(Guid.Parse(fileId), _ambientState.UserId);

[![enter image description here][1]][1]

    var path = Path.Combine(
                   Directory.GetCurrentDirectory(),
                   "fileuploads", file.FilePath);

    byte[] fileBytes = System.IO.File.ReadAllBytes(path);

    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "event-doc" + Path.GetExtension(path));
}
[HttpGet(“DownloadFile/{fileId}”)]
公共异步任务


在返回操作结果之前,您需要添加内容处置标题

var header=newcontentdispositionheadervalue(“附件”)
{
FileName=document.FileName
};
Add(HeaderNames.ContentDisposition,header.ToString());

在返回操作结果之前,需要添加内容处置标题

var header=newcontentdispositionheadervalue(“附件”)
{
FileName=document.FileName
};
Add(HeaderNames.ContentDisposition,header.ToString());


您是否在调试中检查文件是否为空?你可以分享更多关于“没有文件被下载”的详细信息:你得到了204200个0字节,错误的标题,等等?正如我所知,这是互联网浏览器特有的。请尝试通过用户代理更改mime类型。@IlyaChernomordik请求返回200,chrome上devtools的预览实际上显示了该图像,但浏览器没有下载该图像。您所说的“未下载”是什么意思,它显然是下载的,因为您可以看到它。你可能是说浏览器没有“将其作为文件附件下载”或没有显示在屏幕上,我想你想将其作为附件下载?@IlyaChernomordik浏览器没有将其作为文件附件下载是的,我想将其作为附件下载您是否签入调试以确认您的文件不是空的?你可以分享更多关于“没有文件被下载”的详细信息:你得到了204200个0字节,错误的标题,等等?正如我所知,这是互联网浏览器特有的。请尝试通过用户代理更改mime类型。@IlyaChernomordik请求返回200,chrome上devtools的预览实际上显示了该图像,但浏览器没有下载该图像。您所说的“未下载”是什么意思,它显然是下载的,因为您可以看到它。你可能是说浏览器没有“将其作为文件附件下载”或没有显示在屏幕上,我想你想将其作为附件下载?@IlyaChernomordik浏览器没有将其作为文件附件下载是的,我想将其作为附件下载尝试了这一点,并且没有产生任何差异检查文件名,首先使用硬编码的“test”进行尝试,有一些使用UTF字符的som技巧,等等。通过对文件名进行harcoding进行尝试,但没有,两种方法都不起作用。您是否看到来自服务器的响应中存在标头?您可以在另一个浏览器中尝试吗?您可以在浏览器中检查响应中返回的标题是否正确吗?尝试了此操作,但没有产生任何差异检查文件名,首先尝试使用硬编码的“测试”,有使用UTF字符的som技巧,等等。尝试通过对文件名进行harcoding而不使用,这两种方法都不起作用。您是否看到来自服务器的响应中存在标头?您是否也可以在其他浏览器中尝试?是否可以在浏览器中检查响应中返回的标题是否正确?