vue 文件名乱码_vue 二进制文件的下载(解决乱码和解压报错)

本文档介绍了在Vue项目中遇到的文件下载权限问题和解压乱码问题。通过使用vue-resource和原生XMLHttpRequest请求文件流,结合Blob对象实现二进制文件的下载。同时,提供了解决解压报错和文件名乱码的代码示例。
摘要由CSDN通过智能技术生成

问题描述:项目中使用的是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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值