我有一个场景,用户传递一个fileName来下载,由于带宽限制,我们不在服务器上下载文件并流回给用户。我们获取要下载的文件路径,然后重定向到json文件所在的位置
[Route("[controller]/DownloadJsonFile")]
public async Task DownloadJsonFile(string fileName)
{
//Get the file name
string fileToDownload = "https://hostedfilelocation/....test.json"
Response.Redirect(fileToDownload);
}
目前,该方法最终会在浏览器上呈现Json内容。有没有一种方法可以让浏览器开始自动下载文件?这样就不会花很长时间在浏览器上呈现文件。
如果文件类型为zip或gzip,则不会在浏览器上呈现,而是自动下载。应用程序是.Net 6 ASP.NET MVC应用程序
我试过下面的代码,但是行为是一样的,只是它在浏览器上呈现json而不是下载它。
string fileToDownload = "https://hostedfilelocation/....test.json"
HttpResponse response = HttpContext.Response;
response.Clear();
response.ContentType = "application/octet-stream";
response.Headers.Add("Content-Disposition", "attachment; filename=" + fileName);
Response.Redirect(fileToDownload);
这篇博客文章中提到的方法都提到了在iframe中呈现文件,但我希望下载发生在客户端。
通过浏览器重定向下载文件
1条答案
按热度按时间vq8itlhq1#
如果要直接下载,请添加download属性: