フロントエンドでpostでファイルをダウンロード
1674 ワード
2つの一般的な方法 window.open blobを利用して をダウンロード
blobって何?
Blob,Binary Large Objectの略で,バイナリ型の大きなオブジェクトを表す.Blobの概念は、いくつかのデータベースで使用されています.例えば、MYSQLのBLOBタイプは、バイナリデータを表すコンテナです.Webでは、Blobタイプのオブジェクトは可変の類似ファイルオブジェクトの元のデータを表し、一般的にはBlobオブジェクトはバイナリデータであるが、これは類似ファイルオブジェクトのバイナリデータであるため、Fileオブジェクトを操作するようにBlobオブジェクトを操作することができ、実際にはFileはBlobから継承される.
要求に合わせて使う
サービス側はこのようなストリームファイルフォーマットを返します.実はこれは表のファイルストリームかもしれません.postダウンロードでどうやってダウンロードしますか?くだらないことを言わないで直接コードをつけます.
注意事項ファイル名 を知っておく必要があります互換性は現在、現代ブラウザ のみサポートされています.
blobって何?
Blob,Binary Large Objectの略で,バイナリ型の大きなオブジェクトを表す.Blobの概念は、いくつかのデータベースで使用されています.例えば、MYSQLのBLOBタイプは、バイナリデータを表すコンテナです.Webでは、Blobタイプのオブジェクトは可変の類似ファイルオブジェクトの元のデータを表し、一般的にはBlobオブジェクトはバイナリデータであるが、これは類似ファイルオブジェクトのバイナリデータであるため、Fileオブジェクトを操作するようにBlobオブジェクトを操作することができ、実際にはFileはBlobから継承される.
要求に合わせて使う
サービス側はこのようなストリームファイルフォーマットを返します.実はこれは表のファイルストリームかもしれません.postダウンロードでどうやってダウンロードしますか?くだらないことを言わないで直接コードをつけます.
fetch('Excel.do',{
method: 'post',
headers: {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Content-Type' : 'application/x-www-form-urlencoded'
},
'credentials': 'include',
body: Serialize(this.getSearchParam()).substr(1)
})
.then(res => res.blob())
.then(blob => {
console.log(blob)
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = time+'createUserSkuExcel.xls';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
})
注意事項