如何从javascript下载多个文件

时间:2016-09-12 13:54:33

标签: javascript jquery download window.location

我试图在循环中使用window.location.href来下载多个文件

我有一个表格,我可以在其中选择文件,然后我运行一个选定的循环 尝试导航到文件路径以下载文件。

我只保留下载的最后一个文件。

我认为这是因为herf仅在我的javascript完成后才采取行动,而不是代码运行。

当我在window.location.herf上有一个断点时,它仍然只下载最后一个文件,并且只有当我让代码运行时才会这样。

是否有更好的方法从javascript循环启动多个下载。

$("#btnDownload").click(function () {
  var table = $('#DocuTable').DataTable();
  var rows_selected = table.rows('.selected').data();
  $.each(rows_selected, function (i, v) {
    window.location.href = v.FilePath;
  });
});

2 个答案:

答案 0 :(得分:3)

我会使用iframe和脚本来强制下载文件,因为 Joe Enos cmizzi 已经建议了。

这里的答案将有助于JavaScript为每个文件打开多个iframe: Download multiple files with a single action

如果网址实际上可以通过网络正确提供,那么流行语言的答案将有助于强制下载:

确保更改链接以指向下载脚本,并确保添加适当的安全检查。你不会想让任何人滥用你的剧本。

答案 1 :(得分:2)

在某些浏览器(至少谷歌浏览器)中支持以下内容:

$("<a download/>").attr("href", "https://code.jquery.com/jquery-3.1.0.min.js").get(0).click();
$("<a download/>").attr("href", "https://code.jquery.com/jquery-3.1.0.min.js").get(0).click();
$("<a download/>").attr("href", "https://code.jquery.com/jquery-3.1.0.min.js").get(0).click();

JSFiddle:https://jsfiddle.net/padk08zc/