文件流下载





1 
2 
3       
4 

1
//下载 2 handleExport(index, row) { 3 var that = this 4 // var UserCode = localStorage.UserCode 5 // var token = localStorage.token 6 var xmlResquest = new XMLHttpRequest() 7 xmlResquest.open('POST', window.g.ApiUrl + 'api/ReportTemplate/Export?templateId=' + row.ReportTemplateID) 8 xmlResquest.responseType = 'blob' 9 xmlResquest.setRequestHeader('Content-type', 'application/json') 10 // xmlResquest.setRequestHeader('Identifier', UserCode) 11 // xmlResquest.setRequestHeader('Authorization', 'Bearer ' + token) 12 13 xmlResquest.onload = function(oEvent) { 14 var content = xmlResquest.response 15 console.log("content2:",content); 16 17 if (content != null) { 18 if (content.type == 'application/json') { 19 /* const reader = new FileReader() //创建一个FileReader实例 20 reader.readAsText(content, 'utf-8') //读取文件,结果用字符串形式表示 21 reader.onload = function() { 22 //读取完成后,**获取reader.result** 23 24 var msg = JSON.parse(reader.result).message 25 that.$message.error(msg.toString()) //弹出错误提示 26 return 27 } */ 28 } else { 29 that.$message.success("导出成功") 30 // var elink = document.createElement('a') 31 /* var name = that.typeList.filter(a => { 32 return a.ReportTemplateID == that.ReportTemplateID 33 }) */ 34 // console.log("name:",name); 35 // console.log("elink:",elink); 36 // elink.download = /* name[0].TemplateName + '_' + */ moment().format('YYYYMMDDHHmmss') + '.zip' 37 // elink.style.display = 'none' 38 var blob = new Blob([content], { type: 'application/x-zip-compressed' })//需要后端提供文件格式(application/vnd.ms-excel
39 
40             // elink.href = URL.createObjectURL(blob)
41             console.log("createObjectURL:",URL.createObjectURL(blob));
42             window.location.href = URL.createObjectURL(blob)
43             /* document.body.appendChild(elink)
44             elink.click()
45             document.body.removeChild(elink) */
46           }
47         } else {
48           that.$message.warning(that.$i18n.t('Common.Msg.DownFaliure'))
49         }
50       }
51       xmlResquest.send(JSON.stringify(that.filter))
52     },