最近项目中 有个需求 : 一个订单 可能存在 对张的电子发票 ,且 电子发票从接口中 获取的数据是 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);
};
网友评论