js 动态多图片下载
最近项目中 有个需求 : 一个订单 可能存在 对张的电子发票 ,且 电子发票从接口中 获取的数据是 url的形式 :例如:http://dsadda.jpg 形式
当时在想 怎么才可以动态的去下载多张图片呢 (下面是分享 多多交流)
产生了两个想法 :一: 采用 c# 服务端 进行图片流的 打包 并下载 (但是这个方法偏难了 ,所以我果断的舍弃了)
二:可不可以动态的用js去下载呢?结果还真找到了 下面是代码 show time:
var time = new Date(); let triggerDelay = 100; let removeDelay = 1000; var array = new Array(); $.ajax({ cache: false, type: "GET", url: "@Url.Action("File","Bill")", data: { 'statementNo': data.StatementNo}, async: false, error: function (request) { layer.msg(request); }, success: function (data) { if (data == null || data == '' || data.length <= 0) { layer.msg("无电子发票附件"); return; } for (var i = 0; i < data.length; i++) { array.push(data[i]); // _createIFrame(data[i], i * triggerDelay, removeDelay); } } }); for (var j = 0; j < array.length; j++) { console.log(array[j]); _createIFrame(array[j], j * triggerDelay, removeDelay); }
function _createIFrame(url, triggerDelay, removeDelay) { //动态添加iframe,设置src,然后删除 setTimeout(function () { var frame = $('<iframe style="display: none;" class="multi-download"></iframe>'); frame.attr('src', url); $(document.body).after(frame); setTimeout(function () { frame.remove(); }, removeDelay); }, triggerDelay); };