最近項目中 有個需求 : 一個訂單 可能存在 對張的電子發票 ,且 電子發票從接口中 獲取的數據是 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); };