vue+axios+blob方式下載文件流

1、vue+axios下載文件流
let that=this;
that.$ajax({
url: ‘地址’,
method: ‘get’,
responseType: “blob”, //必須要填寫
headers:{‘Content-Type’:‘application/x-www-form-urlencoded’, ‘x-locale’:‘zh-CN’}
}).then(function (res) {
let blob = new Blob([res.data], {type: “application/vnd.ms-excel”});
if (window.navigator.msSaveBlob){
window.navigator.msSaveBlob(blob);
}else {
let objectUrl = window.URL.createObjectURL(blob);
   window.location.href = objectUrl;
}
}).catch(function (err) {
console.log(err)
})

注意:如果在是封裝的axios不生效。只能寫在axios({})裏面。

2、通過form的方式下載文件流。不過不支持headers裏面傳遞用戶信息。只能通過下面的方式傳遞參數數據。
var url = “”, data={};
that.downloadFile( {url:url, data:data});
downloadFile(options){
var config = $.extend(true, { method: ‘get’ }, options);
var $iframe = $(’’);
var $form = $(’’);
$form.attr(‘action’, config.url);
for (var key in config.data) {
$form.append(’’);
}
iframe.append(iframe.append(form);
(document.body).append((document.body).append(iframe);
$form[0].submit();
$iframe.remove();
},

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章