点击下载文件按钮,获取后端返回接口,根据请求头自动解析文件名称,自动识别文件类型后缀名,如果中文是iso-8859-1格式转换为utf-8,否则下载不了.文章来源地址https://www.toymoban.com/news/detail-733937.html
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);
});
文章来源:https://www.toymoban.com/news/detail-733937.html
到了这里,关于下载文件,自动获取后端返回文件名,并自动识别文件格式,如果是iso-8859-1编码转换utf-8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!