您好,欢迎访问一九零五行业门户网

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

下面是我给大家整理的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 获取json数据简单调用(代码附上,简单粗暴)
利用js使用post方式提交请求的方法(结合代码详细解答)
以上就是js下载文件流的简单操作(附上代码)的详细内容。
其它类似信息

推荐信息