vue下载文件文件名乱码
时间: 2024-02-24 19:52:27 浏览: 349
java下载时文件名乱码
5星 · 资源好评率100%
在Vue中下载文件时,如果文件名出现乱码,通常是因为浏览器对文件名的编码方式不同导致的。为了解决这个问题,可以通过设置响应头的Content-Disposition来指定文件名,并且使用encodeURIComponent对文件名进行编码。
以下是一个示例代码,展示如何在Vue中下载文件并解决文件名乱码的问题:
```javascript
// 导入axios库
import axios from 'axios';
// 下载文件的方法
function downloadFile() {
// 发起GET请求下载文件
axios.get('your_file_url', {
responseType: 'blob' // 设置响应类型为blob
})
.then(response => {
// 获取文件名
const fileName = response.headers['content-disposition'].split('filename=')[1];
// 创建一个a标签
const link = document.createElement('a');
link.href = window.URL.createObjectURL(new Blob([response.data]));
// 设置下载的文件名(解决乱码问题)
link.setAttribute('download', decodeURIComponent(fileName));
// 点击a标签进行下载
link.click();
})
.catch(error => {
console.error(error);
});
}
```
在上述代码中,我们使用axios库发起GET请求来下载文件,并设置响应类型为blob。然后,从响应头中获取到文件名,并使用decodeURIComponent对文件名进行解码。最后,创建一个a标签,设置下载的文件名,并通过点击a标签来触发下载。
阅读全文