出了点问题。我的样本不支持简历
[httpget]
[路线(“下载2”)]
公共IActionResult下载2()
{
返回physicalfile(@“d:\test\somemovie.mp4”,“application/octet stream”);
}

响应头中没有接受范围

但当我使用
[httpget]
[路由(“下载”)]
公共异步任务<IActionResult>下载()
{
var path=@“d:\test\somemovie.mp4”;
var memory=new memoryStream();
使用(var stream=new filestream(@“d:\test\somemovie.mp4”,filemode.open,fileaccess.read,fileshare.readwrite,65536,fileoptions.asynchronous fileoptions.sequentialscan))
{
wait stream.copytoAsync(内存);
}
记忆位置=0;
返回文件(内存,“application/octet stream”,path.getfilename(path),true);/enableRangeProcessing=true
}
“EnableRangeProcessing”参数为真

你能解释一下为什么会这样吗?
我应该使用哪种解决方案?我很困惑。

响应头中没有接受范围

但当我使用
[HttpGet]
[Route("Download")]
public async Task<IActionResult> Download()
{
var path = @"d:\test\somemovie.mp4";
var memory = new MemoryStream();
using (var stream = new FileStream(@"d:\test\somemovie.mp4", FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 65536, FileOptions.Asynchronous | FileOptions.SequentialScan))
{
await stream.CopyToAsync(memory);
}
memory.Position = 0;
return File(memory, "application/octet-stream", Path.GetFileName(path),true); //enableRangeProcessing = true
}
“EnableRangeProcessing”参数为真

你能解释一下为什么会这样吗?
我应该使用哪种解决方案?我很困惑。