JQ下载多文件压缩包

422 阅读1分钟
function workDownLoad() {
    var rows = reportForm1.getSelecteds();
    var dataList = []
    if(rows.length){
        exportList = rows
    }
    $(exportList).each(function(index,element){
        var item = {
            db: element.DB,
            proposalId: element.proposalId,
            unitName: element.unitName
        }
        dataList.push(item)
    });
    var url = "/url";
    var xhr = new XMLHttpRequest();
    xhr.open('post', url, true);//post请求,请求地址,是否异步
    xhr.setRequestHeader("Content-type","application/json;");//Content-type根据实际情况不同使用不同的类型
    xhr.setRequestHeader("Content-disposition", "attachment; ");
    xhr.send(JSON.stringify(dataList));//发送请求要传的参数
    xhr.responseType = "blob"; // 返回类型blob
    xhr.onload = function (data, textStatus, request) {// 请求完成处理函数
        if (this.status===200) {
            var blob = this.response;
            var reader = new FileReader();
            reader.readAsDataURL(blob);  // 转换为base64,可以直接放入a表情href
            reader.onload=function (e) {
                console.log(e);          //查看有没有接收到数据流
                // 转换完成,创建一个a标签用于下载
                var a = document.createElement('a');
                a.download="推荐提案"+".zip";        //自定义下载文件名称
                a.href = e.target.result;
                $("body").append(a);    // 修复firefox中无法触发click
                a.click();
                $(a).remove();
            }
        }
        else{
            alert("出现了未知的错误!");
        }
    };
}