vue中获取文件二进制流并在新的标签页打开
后端返回下载文件的接口,返回的都是二进制流,不确定的可以看下下载响应表头的Content-Type是否是application/octet-stream。
如图响应类型octet-stream,这种类型我们一般会直接下载,没法进行预览,将type转换为application/pdf即可进行预览,具体如下:
Axios({
url: '/后端接口url路径',
methods: 'get',
params: { id: row.id }, // 参数
responseType: 'arraybuffer'
}).then((res) => {
const blob = new Blob([res.data], {
type: 'application/pdf'
});
let url = window.URL.createObjectURL(blob);
window.open(url, '_blank'); // 打开新的标签页
})
效果如下图: