Rumah > hujung hadapan web > tutorial js > JS下载文件流的简单操作(附上代码)

JS下载文件流的简单操作(附上代码)

亚连
Lepaskan: 2018-05-18 10:59:57
asal
7629 orang telah melayarinya

下面是我给大家整理的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);
});
Salin selepas log masuk

使用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);
}
Salin selepas log masuk

此时IE下导出正常:

20180316134014384.png

上面是我整理给大家的JS下载文件流的简单操作,希望今后会对大家有帮助。

相关文章:

在js中生成验证码并验证(含有代码,简单粗暴,包教包会)

有关在JS 获取JSON数据简单调用(代码附上,简单粗暴)

利用JS使用POST方式提交请求的方法(结合代码详细解答)

Atas ialah kandungan terperinci JS下载文件流的简单操作(附上代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan