问题描述
在开发过程中,遇到了需要下载文件的需求,一般是直接使用 window.open() 方法,或者通过 a 标签点击下载。但是 PDF 文件只是打开了浏览器携带的 PDF 预览,需要用户手动点击预览页面的下载按钮才能下载文件。那么如何实现直接下载呢。
解决方案
将 PDF 文件的 MIME type 改成 application/octet-stream 并加入 Content-Disposition: attachment header。(原本的 PDF 文件 MIME type 为 application/pdf,浏览器识别到这个类型会自动打开)
可以通过后端接口返回时修改,也可以通过前端自行修改,前端修改如下:
fetch(url, {method: 'get'})
.then(function