html - 使用数据 URI 下载多个文件

标签 html download data-uri

我知道如何在 anchor 上设置 href 和下载属性,以允许用户将数据下载为文件。

但是,客户要求一个链接同时下载两个文件并且不要压缩!不要问我为什么!

上网查了下解决办法:

1) 即时创建 2 个 iframe,并在每个表单中将其 GET 设置为服务器上其中一个文件的位置,然后运行表单提交... here

2) (1) 的变体使用 JQuery 插件.. here

3) 打开弹出窗口。 (不值得链接)

我想知道我是否可以在 JS 端处理这个问题?在同一个应用程序中,我使用以下代码将数据导出到 CSV:

$elm.attr('href', 'data:text/csv;charset=utf8,' + encodeURIComponent(_str)).attr('download', fileName);

其中 _str 是扁平化的二维数组。

我能以某种方式跟踪或附加第二个文件吗?

最佳答案

您可以动态创建链接并触发 navite 点击事件。

function downloadAll(files){
    if(files.length == 0) return;
    file = files.pop();
    var theAnchor = $('<a />')
        .attr('href', file[1])
        .attr('download',file[0]);
    theAnchor[0].click(); 
    theAnchor.remove();
    downloadAll(files);
}

$('a.download-csv').on('click', function(){
    downloadAll([

        ['file1.csv', 'data:text/csv;charset=utf8,'+ 
                     encodeURIComponent('my,csv,file\and,so,on')],

        ['file2.csv', 'data:text/csv;charset=utf8,'+ 
                     encodeURIComponent('my,csv,file\and,so,on')],

        ['file3.csv', 'data:text/csv;charset=utf8,'+ 
                     encodeURIComponent('my,csv,file\and,so,on')]

    ]);
});

在这里您可以找到 fiddle带有工作演示。

这是 article on my web site包含所有详细信息

关于html - 使用数据 URI 下载多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001800/

相关文章:

javascript - 如何使用 window.open 设置文件名

ios - 使用附加 :YES with operation. outputStream AFHTTPRequestOperation 不起作用

javascript - 如何通过 iphone html 像电话号码一样使地址可点击(可检测)?

jquery - 需要为高性能溢出检测器集思广益一些想法

html - CSS 位置在悬停时无法正常工作

c - 是否可以使用 Azure IoT 中心和 Blob 存储进行固件更新?

javascript - 压缩数据后如何用Javascript替换图像formdata?

node.js - 图像未保存在 Palm 设备上

html - SVG 数据 URI 不在 img 标签中呈现

html - 是否有可能使 float DIV 在不适合容器时不换行?