Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从webapp下载zip文件_C#_Asp.net_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# 从webapp下载zip文件

C# 从webapp下载zip文件,c#,asp.net,asp.net-mvc,asp.net-core,C#,Asp.net,Asp.net Mvc,Asp.net Core,my webapp的用户应该能够下载超过10MB的zip文件。 我的控制器中有以下代码: [HttpPost] public IActionResult Download(){ Response.Clear(); esponse.Headers.Add("Content-disposition", "attachment; filename=" + filename +".zip"); Response.ContentType = "application/zip";

my webapp的用户应该能够下载超过10MB的zip文件。 我的控制器中有以下代码:

[HttpPost]
public IActionResult Download(){
    Response.Clear();
    esponse.Headers.Add("Content-disposition", "attachment; filename=" + filename +".zip");
    Response.ContentType = "application/zip";
    Response.SendFileAsync(pathOfTheFile);
    Response.Body.FlushAsync();

    return Content("Download successfull");
}
它开始下载文件,但下载停止,并显示网络错误。 当我在下载栏中说“继续”时,它说没有文件


我的问题是什么?

发生错误是因为包含标题和内容的响应被写入了两次。第一次是由您的代码编写的,包括
Response.Body.FlushAsync
,第二次是在执行操作返回的结果时由
ASP.NET
框架编写的(
IActionResult.executesultasync

考虑使用
控制器提供的
文件
方法

[HttpPost]
public IActionResult Download()
{
    byte[] content = System.IO.File.ReadAllBytes(pathOfTheFile);

    return File(content, "application/zip", filename);
}

尝试这种方式:如果您能描述一下您的答案以及为什么原始代码不起作用,而不仅仅是发布复制粘贴就绪的代码,我们将不胜感激。OPs代码不工作的原因是他正在发送一个
ContentResult
返回,该返回将在文件发送后尝试写入标题(这是不可能的,因为标题需要在内容之前发送)