问题描述:项目中使用的是vue框架进行开发,因为文件下载存在权限问题,所以并不能通过 a 链接的 href 属性直接赋值 URL进行下载,
(如果你的文件没有下载权限,可以直接通过href属性赋值URL的方法进行文件下载),所以使用vue-resource请求文件流后,借助Blob对象实现下载,
但是仍然存在解压的问题(针对压缩文件),而 docx等文档格式主要出现的就是乱码问题。
问题截图:
出现以上解压问题的代码,通过vue-resource请求二进制文件
downloadFile(attachment) {
let fileName=attachment.displayName;this.$http.get(strategyDownloadUrl + '/' + attachment.id).then((res) =>{if(typeof(res.data) == 'string'){var blob = new Blob([res.data], {type:'application/octet-stream'})if (window.navigator.msSaveOrOpenBlob) {//msSaveOrOpenBlob方法返回bool值
navigator.msSaveBlob(blob, fileName);//本地保存
} else{var link = document.createElement('a');//a标签下载
link.href =window.URL.createObjectURL(blob);