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)