问题背景:项目开发测试阶段出现该问题。

  复现:开发调试过程中一直没有问题,本地下载excel、Word、pdf 都完美,但是在服务部署到服务器之后,测试环境的chrome就总是下载失败,提示网络错误。

  

网页上有错误javascript 网页上有错误无法下载_网页上有错误 javascript


  这时候追踪问题,本地测试时发现每次下载都会有问题警示:Resource interpreted as Document but transferred with MIME type application/octet-stream,

各种百度,大多数都是说修改content-type,但是不管修改成什么类型,抓包都显示返回了相应的类型,但下载就是不成功(不得不吐槽一下百度,真的是打广告一流)。

  转战bing,成功找到解决办法:增加头信息Content-Length,

网页上有错误javascript 网页上有错误无法下载_字节流_02

,其中bytes就是要下载的二进制流文件,

造成这种情况的原因,其实是高版本的chrome对字节流的下载进行了限制,需在头信息中声明字节流长度。(这里的限制具体是什么,等后续找到确切说法我再来更新)

 

 这种方式导出的word有丢失文字现象。在头部增加的流的长度只是正文的长度(bytes.Length部分),还需要加上头部的长度,我这里加了5000,也是一点点测出来的。