バックグラウンドで返されるバイナリ・データ・ストリームを、希望するword、doc、またはxslsファイルに変換する方法

1638 ワード

テキストリンク:https://juejin.im/post/5bfe3c1a51882552755065d8
プロジェクトの応用過程で、バックグラウンドから戻ってきたバイナリファイルを私たちが望んでいるファイルに変換する必要があります.ここではBlobというものを使います.
Blob:彼はjsの操作オブジェクトクラスで、html 5のファイル操作オブジェクトで、blobはバイナリデータを格納するために使用されて、Blob自身のオブジェクトは2つの属性があって、1つはtypeで、1つはsizeです;Blobにはslice()という属性があります.彼は切り取るために使いますが、彼はバイナリデータを切り取っています.一般的に大きなファイルをアップロードするとき、データのアップロードの大きさが制限されているので、slice属性を利用してデータを切断する必要があります.
正式な使い方:1.まずblobオブジェクトを作成する必要があります.var blob=new Blob([データ],{type:'text/plain'})/Blobオブジェクトを作成するBlob()コンストラクション関数を使用してblobオブジェクトを作成します.
彼のコンストラクション関数には2つのパラメータが含まれています.最初のパラメータはデータ数列で、彼は任意のフォーマットのデータで、2番目はtypeで、彼はMIMEの嗅覚タイプです.
2.ファイルをダウンロードする必要がある場合は、aラベルのdownloadプロパティを使用する必要があります.
コードは上記の通りです.ここのfile Nameは、エクスポートするファイル名とフォーマットlet file Name=として定義されます. .xlsx , let fileName = .do'c
ここでダウンロードしたファイルが開かないことに気づいたら、絶対に私を殴らないでください.ここでapiを要求するときは、必ずresponseのタイプをblob responseType:'blob';コードは次のとおりです.
export function apitest(id,params){
 return request({
   url: `url`,
   method: 'get',
   params,
   responseType: 'blob'
 })
}

------------------------------------------------------------------------------------------------------------------------------------------------------
link.download = fileName
document.body.appendChild(link)

以上のコードを加えると火狐ブラウザと互換性があります