下面是JS下载文件并修改文件名的完整攻略:
1. 使用XMLHttpRequest对象下载文件并修改文件名
XMLHttpRequest对象是一个内置的JavaScript对象,可以用于从服务器获取数据,包括文件。可以利用它来下载文件并修改文件名。
示例一:下载图片并修改文件名
function downloadImage(url, filename) {
let xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
let a = document.createElement('a');
a.href = URL.createObjectURL(xhr.response);
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
xhr.open('GET', url);
xhr.send();
}
// 调用示例
downloadImage('https://www.example.com/image.jpg', 'newname.jpg');
示例二:下载PDF文件并修改文件名
function downloadPdf(url, filename) {
let xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function() {
let a = document.createElement('a');
a.href = URL.createObjectURL(xhr.response);
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
xhr.open('GET', url);
xhr.send();
}
// 调用示例
downloadPdf('https://www.example.com/file.pdf', 'newname.pdf');
2. 使用fetch API下载文件并修改文件名
fetch API 是一种获取资源的新方法,也可以用于下载文件并修改文件名。可以使用response.blob()方法把响应内容转换成 Blob 对象,并创建一个带有 Blob 对象的 URL,最后使用 a 标签下载文件。
示例三:下载文本文件并修改文件名
function downloadText(url, filename) {
fetch(url)
.then(response => response.blob())
.then(blob => {
let a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
}
// 调用示例
downloadText('https://www.example.com/data.txt', 'newname.txt');
示例四:下载音频文件并修改文件名
function downloadAudio(url, filename) {
fetch(url)
.then(response => response.blob())
.then(blob => {
let a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = filename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
}
// 调用示例
downloadAudio('https://www.example.com/audio.mp3', 'newname.mp3');
以上就是JS下载文件并修改文件名的完整攻略,分别使用了XMLHttpRequest对象和fetch API来实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js下载文件并修改文件名 - Python技术站