如何在JS中下载多个文件

时间:2016-02-28 17:46:14

标签: javascript window.open

我打开下载链接:

max_steps = 1000
max_err = 0.000001

condition = cv2.TERM_CRITERIA_COUNT | cv2.TERM_CRITERIA_EPS

criteria = (condition, max_steps, max_err)

train_params = dict(term_crit = criteria, 
              train_method = cv2.ANN_MLP_TRAIN_PARAMS_BACKPROP, 
              bp_dw_scale = 0.1, 
              bp_moment_scale = 0.1)

这适用于一个下载链接。但是对于一键打开的所有其他链接,它们都被Chrome弹出窗口拦截器捕获。

我需要此功能,因为我想在我的网站上实现一个按钮,一次下载多个文件。喜欢这个数据由data1.cab data2.cab data3.cab组成,我不希望用户逐个下载,而是单个下载链接下载完整的数据集。

2 个答案:

答案 0 :(得分:0)

这是不希望的行为,所有弹出窗口阻止程序都会检测到。单击可以创建一个动作。同样,下载多个文件可以向用户隐藏许多文件,看起来像是恶意软件攻击。

最好的方法是压缩文件,或者如果不可用压缩,请显示所有文件及其各自的下载链接。这样,用户便知道自己正在下载什么。

答案 1 :(得分:0)

这不是可取的行为,因为用户可能会将其视为恶意软件/病毒攻击。 您可以使用https://stuk.github.io/jszip/ JSZip库压缩文件(图像数据),然后在客户端位置流式传输压缩文件 示例示例

var zip = new JSZip();
zip.file("Hello.txt", "Hello World\n");
var img = zip.folder("images");
img.file("smile.gif", imgData, {base64: true});
zip.generateAsync({type:"blob"})
.then(function(content) {
    // see FileSaver.js
    saveAs(content, "example.zip");
});

enter image description here