当前位置:首页 > 编程笔记 > 正文
已解决

下载文件,自动获取后端返回文件名,并自动识别文件格式,如果是iso-8859-1编码转换utf-8

来自网友在路上 183883提问 提问时间:2023-11-02 06:02:41阅读次数: 83

最佳答案 问答题库838位专家为你答疑解惑

点击下载文件按钮,获取后端返回接口,根据请求头自动解析文件名称,自动识别文件类型后缀名,如果中文是iso-8859-1格式转换为utf-8,否则下载不了.

axios({method: 'get',url: 'http://your-backend-url/download',responseType: 'blob',
}).then(response => {
// 获取请求头内容const contentDisposition = response.headers['content-disposition'];// 文件名处理、格式处理const encodedFilename = contentDisposition.split('filename=')[1];// utf-8格式处理// const decodedFilename = decodeURIComponent(encodedFilename);// iso-8859-1格式处理const decodedFilename = decodeURIComponent(escape(encodedFilename));// 创建一个 Blob 对象const blob = new Blob([response.data], { type: response.headers['content-type'] });// 创建一个 URL 对象const url = window.URL.createObjectURL(blob);// 创建一个链接元素并模拟点击以下载文件const a = document.createElement('a');a.href = url;//文件名、后缀类型处理a.download = decodedFilename;document.body.appendChild(a);a.click();// 释放内存window.URL.revokeObjectURL(url);
});
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"下载文件,自动获取后端返回文件名,并自动识别文件格式,如果是iso-8859-1编码转换utf-8":http://eshow365.cn/6-29948-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!