js通过url下载 浏览器不弹下载框,代码中指定下载目录
时间: 2024-04-14 17:31:17 浏览: 70
js根据url或数据下载文件到本地download.js
4星 · 用户满意度95%
你可以使用 JavaScript 的 Blob 对象和 URL.createObjectURL() 方法来实现通过 URL 下载文件而不弹出下载框。以下是一个示例代码:
```javascript
function downloadFile(url, filename) {
fetch(url)
.then(response => response.blob())
.then(blob => {
const a = document.createElement('a');
const blobUrl = URL.createObjectURL(blob);
a.href = blobUrl;
a.download = filename;
a.style.display = 'none';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(blobUrl);
});
}
// 用法示例
const url = 'https://example.com/file.pdf'; // 文件的 URL
const filename = 'myfile.pdf'; // 文件名(可自定义)
downloadFile(url, filename);
```
在上面的代码中,`downloadFile` 函数接受文件的 URL 和要保存的文件名作为参数。它使用 fetch API 发起对文件的请求,将响应转换为 Blob 对象,然后创建一个带有下载链接的 `<a>` 元素,并模拟点击该链接来触发文件下载。最后,移除创建的 `<a>` 元素并释放 Blob 对象的 URL。
请注意,浏览器的安全策略可能会阻止某些类型的文件自动下载,因此这种方法可能不适用于所有文件类型和所有浏览器。
阅读全文