如何使用window.open()下载多个文件?

时间:2018-08-29 07:42:51

标签: javascript jquery ajax asp.net-mvc

我正在尝试一次下载多个文件。最初,我使用window.location = url,但现在似乎不起作用。

我将其更改为window.open(url, "_blank"),并且它仅下载第一个:

window.open("/host/Controller/DownloadDasFiles?paramId=204");
window.open("/host/Controller/DownloadDasFiles?paramId=205");
window.open("/host/Controller/DownloadDasFiles?paramId=206");
public FileResult DownloadDasFiles(int paramId)
{
  var dasControl = UnityConfig.container.Resolve<IDasControlService>();
  var filename = dasControl.GetDasFileToDownload(paramId);
  return File(filename, "application/octet-stream", Path.GetFileName(filename));
}

在我的真实情况下,我会在AJAX成功执行后在javascript循环中执行此操作,但是此代码应该有效,不是吗?

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。它将同时打开所有3个窗口。

let test = [204, 205, 206];
let downLoadFileBaseUrl = '/host/Controller/DownloadDasFiles?paramId='
test.forEach(element => {
  let file = `${downLoadFileBaseUrl}+${element}`;
  window.open(file, '_blank', 'File :' + element + ',scrollbars=1,menubar=0,resizable=1,width=850,height=500');
});