function submitDataCompared() {
var RootPath = getRootPath();
if ($('#dataCompared form').form('enableValidation').form('validate')) {
var formData = new FormData($( "#hxform1" )[0]);
console.log(formData)
// formData.append("files",fileInputElement.files)
var theScene = $('#dataCompared .theScene')[0].files,
DDAll = $('#dataCompared .DDAll')[0].files,
DDPunch = $('#dataCompared .DDPunch')[0].files;
ajaxData={
'theScene':theScene,
'DDAll':DDAll,
'DDPunch':DDPunch
},
ajaxUrl = '/PC/ExportExcelController/workHoursCompared2';
console.log(ajaxData)
$.messager.confirm('确定提交', '您确定要“提交”嘛?', function(r) {
if (r) {
// $('#dataCompared .submit').linkbutton('disable');
//下面处理数据
$.ajax({
url: RootPath + ajaxUrl,
type: "POST",
data: formData,
responseType:"Blob",
body:formData,
async:false,
cache:false,
contentType:false,
processData:false,
error : function(request) {
$.messager.alert("提示信息","发送请求失败!",'info',function(){
$('#dataCompared .submit').linkbutton('enable');
});
$(".messager-window .panel-tool-close").css("display","none");
},
beforeSend : function() {
$('<div class="loadingWrap1"></div>').appendTo("body");
},
success: function (req,res) {
var blob = new Blob([req], {
type: "application/OCTET-STREAM"}); //创建一个blob对象
var a = document.createElement('a'); //创建一个<a></a>标签
a.href = URL.createObjectURL(blob); // response is a blob
a.download = "考勤对比.xlsx"; //文件名称
a.style.display = 'none';
document.body.appendChild(a);
a.click();
a.remove();
// if (data.success) {
// window.open(RootPath + '/PC/ExportExcelController/workHoursCompared2' );
// $.messager.alert('提示信息',data.msg,'info',function() {
// $('#addLoanPeople').window('close');
// $('#dataCompared .submit').linkbutton('enable');
// $('#FacilitiesDatagrid').datagrid('reload');
// });
// $(".messager-window .panel-tool-close").css("display","none");
// }else {
// $.messager.alert('提示信息',data.msg,'info',function() {
// $('#dataCompared .submit').linkbutton('enable');
// });
// $(".messager-window .panel-tool-close").css("display","none");
// }
},
complete : function() {
$(".loadingWrap1").remove();
}
});
}
});
}
}
如果不能实现,说明不支持jq请使用原生ajax
var url = RootPath + ajaxUrl;
var xhr = new XMLHttpRequest();
xhr.open('post', url, true); // 也可以使用POST方式,根据接口
xhr.responseType = "blob"; // 返回类型blob
// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
xhr.onload = function () {
// 请求完成
// 返回200
var blob = this.response;
var reader = new FileReader();
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href
reader.onload = function (e) {
// 转换完成,创建一个a标签用于下载
var a = document.createElement('a');
a.download = 'data.xlsx';
a.href = e.target.result;
$("body").append(a); // 修复firefox中无法触发click
a.click();
$(a).remove();
}
};
// 发送ajax请求
xhr.send(formData)