gpt4 book ai didi

javascript - 如何强制/允许用户下载多个文件? (客户端)

转载 作者:太空狗 更新时间:2023-10-29 16:42:44 24 4
gpt4 key购买 nike

输入是可变数量的 URL(远程),所有链接图像资源。希望允许用户允许批量下载所有这些 URL。由于我们讨论的是 1000-2000 个图像资源,要求用户为每个 URL 单击“另存为...”是不可行的。

我最初的尝试是将所有图像下载到一个 blob 中( How to read loaded image into a blob? ,由于同源策略而不起作用),存档文件并允许用户下载它(所有这些客户端)。

我想知道有哪些可能的替代解决方案?不管是什么方案,都不能随时把远程资源下载到服务器上。

最佳答案

虽然这不应该是可能的,但我设法在 Chrome 中用一些魔法做到了这一点。首先,您需要为所有链接设置 download 属性 f.ex:

<a href="http://example.com/image1.jpg" download>download</a>
<a href="http://example.com/image2.jpg" download>download</a>

然后创建一个合成点击函数:

function makeClick(element) {
var evt = element.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true,
element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
false, false, false, 1, null);
element.dispatchEvent(evt);
}​

然后循环遍历您的链接并调用它:

var links = document.getElementsByTagName('a');
for(var i=0;i<links.length; i++) {
makeClick(links[i]);
}

这是一个演示:http://jsfiddle.net/37pFC/

在 Chrome 中,您会收到类似“此站点要您下载多个文件。允许吗?”之类的警告。但这可能是可以管理的。

免责声明:我没有在其他浏览器中尝试过,我认为它对跨浏览器不是很友好。

关于javascript - 如何强制/允许用户下载多个文件? (客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13950974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com