在JavaScript中,可以通过创建一个隐藏的链接来实现重命名window.open()
中下载的文件。具体步骤如下:
XMLHttpRequest
或fetch
等方法从服务器获取要下载的文件的数据。Blob
对象,将获取到的文件数据作为参数传入。URL.createObjectURL()
方法创建一个临时的URL,将Blob
对象作为参数传入。<a>
标签,并设置其href
属性为临时URL。<a>
标签的download
属性为要重命名的文件名。document.body.appendChild()
方法将<a>
标签添加到页面中。<a>
标签的click()
方法模拟点击操作,触发文件下载。URL.revokeObjectURL()
方法释放临时URL。document.body.removeChild()
方法将<a>
标签从页面中移除。以下是示例代码:
function downloadFile(url, fileName) {
// 1. 从服务器获取文件数据
// ...
// 2. 创建Blob对象
const blob = new Blob([fileData]);
// 3. 创建临时URL
const tempUrl = URL.createObjectURL(blob);
// 4. 创建隐藏的<a>标签
const link = document.createElement('a');
link.href = tempUrl;
// 5. 设置下载的文件名
link.download = fileName;
// 6. 添加到页面中
document.body.appendChild(link);
// 7. 模拟点击操作,触发下载
link.click();
// 8. 释放临时URL
URL.revokeObjectURL(tempUrl);
// 9. 从页面中移除<a>标签
document.body.removeChild(link);
}
// 调用示例
downloadFile('http://example.com/file.pdf', 'newFileName.pdf');
这样,通过创建一个隐藏的链接并设置download
属性,就可以在JavaScript中重命名window.open()
中下载的文件。
领取专属 10元无门槛券
手把手带您无忧上云