aspnet core - 浏览器不显示文件结果的下载进度
aspnet core - browser not showing download progress on File result
我有一个允许下载文件的简单网络应用程序。
文件下载正确,但浏览器从不指示接收到的数据量(即进度)。
它一直显示 0.1 MB,直到突然下载文件。
下载操作实现如下 - 现在,只需打开读取本地文件并return流作为文件结果。
public async Task<IActionResult> Download(string id)
{
var project = await this.service.GetById(id).ConfigureAwait(false);
if (project == null)
{
return this.NotFound($"Project [{id}] does not exist");
}
var file = new FileInfo(project.DownloadLocation);
this.Response.ContentLength = file.Length;
return this.File(file.OpenRead(), "application/octet-stream", file.Name);
}
下载是由一个简单的动作触发的 link:
<dd class="project-path">@Html.ActionLink("Here", "Download", "Download", new { id = Model.Id})</dd>
知道为什么 Chrome/Firefox 从不显示下载进度吗?
您的代码应该可以解决问题。您应该尝试使用更大的文件(例如:200mb)吗?这可能是计算 ETA 花费的时间比在本地开发环境中下载时间多的原因。
我有一个允许下载文件的简单网络应用程序。
文件下载正确,但浏览器从不指示接收到的数据量(即进度)。
它一直显示 0.1 MB,直到突然下载文件。
下载操作实现如下 - 现在,只需打开读取本地文件并return流作为文件结果。
public async Task<IActionResult> Download(string id)
{
var project = await this.service.GetById(id).ConfigureAwait(false);
if (project == null)
{
return this.NotFound($"Project [{id}] does not exist");
}
var file = new FileInfo(project.DownloadLocation);
this.Response.ContentLength = file.Length;
return this.File(file.OpenRead(), "application/octet-stream", file.Name);
}
下载是由一个简单的动作触发的 link:
<dd class="project-path">@Html.ActionLink("Here", "Download", "Download", new { id = Model.Id})</dd>
知道为什么 Chrome/Firefox 从不显示下载进度吗?
您的代码应该可以解决问题。您应该尝试使用更大的文件(例如:200mb)吗?这可能是计算 ETA 花费的时间比在本地开发环境中下载时间多的原因。