1.同源文件下载,修改文件名
同源文件下载,修改文件名使用 download 属性
// html 标签下载
<a href="http://baidu/123456.jpg" download="自拍.jpg">自拍下载</a>
// javascript 动态创建 a 标签下载
function downloadImg(url, filename){
const a = document.createElement("a");
a.href = url;
a.download = filename; // 修改文件名
a.style.display = "none";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
2.非同源文件下载,修改文件名
非同源文件下载,先转换为Blob对象,然后用URL.createObjectURL()创建一个指向该Blob的URL,通过a标签下载,修改 download 属性
注意:要解决跨域问题,oss上的也要允许跨域
downloadByBlob(url,fileName) {
axios(url, {
method: 'get',
responseType: 'blob',
}).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data], { type: 'application/pdf' }));
// 采用上面,javascript 动态创建 a 标签下载
downloadImg(url ,'自拍照.pdf')
});