blob中zip下载方式
时间: 2023-12-19 07:30:09 浏览: 406
以下是使用Blob对象进行zip文件下载的示例代码:
```javascript
// 假设后台返回的数据是一个blob对象
const blob = new Blob([response.data], { type: 'application/zip' });
// 创建一个a标签,用于生成下载链接
const downloadLink = document.createElement('a');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'example.zip'; // 下载文件的文件名
// 将a标签添加到页面中并模拟点击
document.body.appendChild(downloadLink);
downloadLink.click();
// 下载完成后移除a标签
document.body.removeChild(downloadLink);
```
需要注意的是,上述代码中的`response.data`是后台返回的数据,需要根据实际情况进行修改。此外,`type`参数指定了下载文件的MIME类型,`download`参数指定了下载文件的文件名。
相关问题
vue下载 blob zip
在中下载blob zip文件的方法如下所示:
```javascript
// 下载文件
const fileRes = await axios.get(filePath, { responseType: 'blob' })
// 临时创建一个Blob对象,储存文件数据
// type: application/vnd.ms-excel;charset=utf-8 excel文件
// type: application/zip zip文件
const blob = new Blob([fileRes.data], { type: 'application/zip' })
// 创建a标签,模拟点击a标签,实现文件下载功能
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
// 创建下载的链接
downloadElement.href = href
// 设置文件名
downloadElement.download = `${fileName}`
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(href) // 释放掉blob对象。
```
vue使用Blob下载zip包是后面总是加一个下划线
在使用Blob下载zip包时,文件名后面总是多了一个下划线,这很可能是因为文件名中包含了一些特殊字符,在文件名中使用特殊字符可能会导致文件名解析不正确,从而导致文件名出现异常。为了避免这种情况,我们可以使用正则表达式过滤掉文件名中的特殊字符,或者手动指定一个不包含特殊字符的文件名。另外,我们还需要注意设置文件的MIME类型,以确保浏览器能够正确地识别文件类型并进行下载。具体的代码实现可以参考以下示例:
```
let link = document.createElement('a');
link.href = window.URL.createObjectURL(new Blob([data]));
let fileName = 'example.zip';
fileName = fileName.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, ''); // 过滤掉特殊字符
link.download = fileName;
link.click();
```
阅读全文