实际工作中,常常会遇到如预览PDF、下载Excel之类的需求。通常处理方式有:
1、后端返回一个文件在服务器的URL,前端直接使用就行。
2、后端返回流数据。如图
前端如何处理?
1、接口请求的时候一定要加responseType: 'blob'
,否则生产的文件会是空白(PDF)
2、代码实现
const binaryData = []
binaryData.push(res)// res 后台返回的流数据
this.pdfUrl = window.URL.createObjectURL(new Blob(binaryData, { type: 'application/pdf' }))
window.open(this.pdfUrl)
参考: