【问题标题】:PDF not downloading MVC dotnet core 3.1 "Couldn't download" errorPDF 未下载 MVC dotnet core 3.1“无法下载”错误
【发布时间】:2021-04-29 12:40:06
【问题描述】:

从 MVC 3.1 控制器提供 pdf 文件会生成“无法下载 - 网络错误”消息,但服务器上没有任何错误,并且响应标头似乎包含正确的数据(附有屏幕截图)。

浏览器截图/响应头

控制器代码

这似乎是完成此任务的可接受方式之一。

  [HttpPost]
  [ValidateAntiForgeryToken]
  public async Task<IActionResult> Download([FromForm] IFormCollection formCollection)
  {
     ...
       // rawPdf is a byte[]
        var rawPdf = await _pdfFileService.GetMergedPdfFilesAsync(mergedFileName, pdfDirectoryPath, pathList);
        MemoryStream ms = new MemoryStream();
        ms.Write(rawPdf, 0, rawPdf.Length);
        //fix
        ms.Position = 0;

       // also tried
       //return File(ms, "application/pdf", mergedFileName);

        return new FileStreamResult(ms, new MediaTypeHeaderValue("application/pdf"))
        {
            FileDownloadName = mergedFileName
        };
  }

【问题讨论】:

    标签: c# asp.net-mvc pdf-generation


    【解决方案1】:

    啊哈!骨头问题。这是修复:ms.Position = 0

    解释:流在末尾,所以当它试图刷新它时,它已经在末尾了。上面的代码行将流重置为起始位置,以便可以流式传输。

    【讨论】:

    • 哈哈,是的,去过那里。
    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多