フロントエンドはバックエンドから返されたファイル ストリームを処理し、ファイルをダウンロードします。

バイナリストリーム形式

 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 PDF 申請書/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)
}

おすすめ

転載: blog.csdn.net/m0_73334325/article/details/131685090