JavaScript ~文件下载的几种方式

  

1。通过一个标签的方式来下载

& lt; a  href=https://www.yisu.com/zixun/蹦勘?‘平等’>

2。通过提交形式表单的方式

var  form 美元;=,美元(& # 39;& lt; form  action=? # 39; + url + & # 39;“,方法=皃ost",目标=皉fFrame"祝辞& lt;/form> & # 39;);   angular.forEach (d函数(v, k) {   ,,,v =, JSON.stringify (v);   ,,,var  input 美元;=,美元(& # 39;& lt; input 类型=癶idden", name=? # 39; + k + & # 39;“/祝辞& # 39;);   ,,,美元input.attr(& # 39;价值# 39;,v);   ,,,form.append美元($输入);   });   (element.append美元形式);   美元form.submit ();   美元form.remove ();

3。通过http的请求拿到文件流的方式

http({美元   ,,,url :, scope.url美元,   ,,,method :, & # 39;文章# 39;   ,,,data :, scope.form.formdata美元,   ,,,responseType :, & # 39; arraybuffer& # 39;   })(函数(d) {   ,,,var  data =, d.data;   ,,,,,,,var  blob =, new  Blob((数据),{类型:,“文本/plain"});   ,,,,,,//var  blob =, new  Blob((数据),{类型:,“应用程序/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});//xlsx   ,,,,,,//var  blob =, new  Blob((数据),{类型:,“应用程序/vnd.ms-excel"});//xls   ,,,,,,,var  downloadTitle =, & # 39; & # 39;;   ,,,,,,,如果(d.headers(& # 39;附加# 39;).indexOf(& # 39;文件名# 39;),!=,1){   ,,,,,,,,,,,downloadTitle =, d.headers(& # 39;附加# 39;).split (& # 39;; & # 39;) [1] .split (& # 39;=& # 39;) [1];   ,,,,,,,,,,,downloadTitle =, decodeURI (downloadTitle);   ,,,,,,,}   ,,,,,,,如果(typeof  window.navigator.msSaveBlob  !==, & # 39;未定义# 39;){   ,,,,,,,,,,,window.navigator.msSaveBlob (blob, downloadTitle);   ,,,,,,,其他}{   ,,,,,,,,,,,var  objectUrl =, URL.createObjectURL (blob);   ,,,,,,,,,,,var  aForExcel =,美元(“& lt; a 下载=& # 39;“+ downloadTitle +“& # 39;祝辞& lt; span 类=& # 39;forExcel& # 39;祝辞& lt;/span> & lt;/a>“) .attr (“href" objectUrl);   ,,,,,,,,,,,(“body")美元.append (aForExcel);   ,,,,,,,,,,,(“.forExcel")美元.click ();   ,,,,,,,,,,,aForExcel.remove ();   ,,,,,,,}   });


JavaScript ~文件下载的几种方式