jq的文件導出代碼(上傳文件,導出文件)

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章