首頁 >web前端 >js教程 >JS下載檔案流的簡單操作(附上程式碼)

JS下載檔案流的簡單操作(附上程式碼)

亚连
亚连原創
2018-05-18 10:59:577609瀏覽

以下是我要幫大家整理的JS下載檔案流的簡單操作,有興趣的同學可以去看看。

下載的程式碼如下:

var xhr = new XMLHttpRequest();
var formData = new FormData();
formData.append('snNumber', $("#snNumber").val());
formData.append('spec', $("#spec").val());
formData.append('startCreateDate', $("#startCreateDate").val());
formData.append('endCreateDate', $("#endCreateDate").val());
formData.append('startActiveDate', $("#startActiveDate").val());
formData.append('endActiveDate', $("#endActiveDate").val());
formData.append('supplier', $("#supplier").val());
formData.append('state', $("#cboDeviceStatus").val());
xhr.open('POST', vpms.ajaxUrl + vpms.manageUserUrl + "exportExcelDevices", true);
xhr.setRequestHeader("accessToken", userInfo.accessToken);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status == 200) {
var blob = this.response;
var filename = "设备导出{0}.xlsx".format(vpms.core.date.format("yyyyMMddhhmmss"));
var a = document.createElement('a');
blob.type = "application/excel";
var url = createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}
};
xhr.send(formData);
});

使用Chrome下載運作良好,可IE Explorer 11版本匯出Excel按鈕無反應或彈出"需要新應用程式開啟此blob" .

改進下blob的處理方式:如下

if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {

var a = document.createElement('a');
blob.type = "application/excel";
var url = createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
}

此時IE下匯出正常:

JS下載檔案流的簡單操作(附上程式碼)

上面是我整理給大家的JS下載檔案流的簡單操作,希望未來會對大家有幫助。

相關文章:

在js中產生驗證碼並驗證(含有程式碼,簡單粗暴,包教包會)

有關在JS 取得JSON資料簡單呼叫(程式碼附上,簡單粗暴)

#利用JS使用POST方式提交請求的方法(結合程式碼詳細解答)

以上是JS下載檔案流的簡單操作(附上程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn