如果用户开始下载相当大的文件(500mb),但过早地取消了请求,我该如何计算实际发送给用户的字节数?
public async Task<IActionResult> Download(string filename)
{
IActionResult result = BadRequest();
var path = Path.Combine(firstPart, secondPart);
if (System.IO.File.Exists(path))
{
var bytes = await System.IO.File.ReadAllBytesAsync(path);
await Response.Body.WriteAsync(bytes, 0, bytes.Length);
result = Ok();
}
return result;
}
使用 JavaScript 验证这一点,并通过 AJAX 发送文件。这样,您可以确保如果文件太大,它甚至永远不会到达您的控制器。我已经尝试过Dropzone.js它为你做到了这一点。