バイナリストリーム形式
BLOB形式
序文:
要件: バックエンド インターフェイスから返されたファイル ストリームに基づいてデータ処理を実行し、ファイルのダウンロードを実装します。ダウンロードされたファイルは Word ドキュメントです。
パッケージ ダウンロード ファイル インターフェイス:
最初は、responseType: "Blob" が含まれておらず、ファイルをダウンロードしたら、中身がすべて文字化けしてしまいました。!!
コード:
//下载文件
async function DownLoadFile(row) {
let res = await DownLoadFileAPI(row.id);
const blobURL = window.URL.createObjectURL(
new Blob([res.data], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" })
);
const tempLink = document.createElement("a");
(tempLink.style.display = "none"), (tempLink.href = blobURL);
tempLink.setAttribute("download", row.filename);
document.body.appendChild(tempLink);
tempLink.click();
document.body.removeChild(tempLink);
window.URL.revokeObjectURL(blobURL);
}
追加の知識ポイント:
1、新しいブロブ(ブロブパーツ、オプション);
一般的なタイプのタイプ:
拡張子名 | ファイルの種類 | MIMEタイプ |
.doc | マイクロソフトワード | アプリケーション/msword |
.docx | マイクロソフトワード | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.jpeg/.jpg | JPEG画像 | 画像/jpeg |
.mp3 | MP3オーディオ | オーディオ/mpeg |
申請書/PDF | ||
.xls | マイクロソフトエクセル | アプリケーション/vnd.ms-excel |
.xlsx | マイクロソフトエクセル | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
。ジップ | ジップ | アプリケーション/zip |
詳細:メディアの種類
2.フォーマット変換
バイナリ転送 BLOB
const blob = new Blob([BufferSource],{type:type})
Base64 への BLOB
BlobToBase64(blob,cb){
const fileReader = new FileReader()
fileReader.onload = function(e){
cb(e.target.result)
}
fileReader.readAsDataURL(blob)
}