JS下载文件流的简单操作(附上代码)
程序员文章站
2022-04-04 21:09:51
...
下面是我给大家整理的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下载文件流的简单操作(附上代码)的详细内容,更多请关注其它相关文章!
推荐阅读
-
Java实现拖拽文件上传dropzone.js的简单使用示例代码
-
Javascript前端下载后台传来的文件流代码实例
-
Vue实现点击按钮下载文件的操作代码(后端Java)
-
js+jstl+servlet实现文件上传、列表展示及文件下载的代码详解
-
不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题
-
不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题
-
Javascript前端下载后台传来的文件流代码实例
-
简单的php操作word文件实现代码
-
Node.js中文件系统的文件操作的代码实现
-
简单的php操作word文件实现代码_PHP教程