使用浏览器自带属性实现文件预览及下载
最近有个bug,需要实现文件预览并下载。使用浏览器自带的预览没问题,但是下载的过程中谷歌浏览器会报网络错误。简单了解了一下,谷歌浏览器对于超过一定大小(印象中好像是3m)就会报网络错误。解决方法如下:
打开浏览器预览
let toLocaleLowerCaseType = this.type.toLocaleLowerCase();
const blobUrl = new Blob([this.fileData], {
type: imgArr.includes(toLocaleLowerCaseType) ? blobTypeObj[toLocaleLowerCaseType] : "application/pdf;charset=UTF-8"
});
window.open(url,'_self');
这样直接下载会报错
直接把url放入内嵌的iframe,这样就能直接下载了
<div class="docWrap">
<!-- <el-button @click="downLoad">点击下载文件</el-button> -->
<iframe :src="fileUrl"></iframe>
</div>