概要Excel 要件をエクスポートします。テンプレートのダウンロードまたはフィードバック結果のダウンロードをクリックすると、axios はバックエンド インターフェイス要求を開始し、返されたデータが応答を取得するときに、図に示すように文字化けした文字が表示されます。 以下にいくつかの治療方法を挙げます。 1. URL経由でダウンロードつまり、バックエンドがファイルのアドレスを提供し、ブラウザを使用して直接ダウンロードすることができます。 window.location.href = ファイルパス経由でダウンロード window.location.href = `${location.origin}/operation/ruleImport/template` window.open(url, '_blank') 経由 window.open(`${location.origin}/operation/ruleImport/template`) これら 2 つの使用方法の違いは次のとおりです。
2. aタグのダウンロード属性とblobコンストラクタを組み合わせてダウンロードするa タグのダウンロード属性は、HTML5 標準に新しく追加されたものです。その機能は、ダウンロード URL に移動するのではなく、ブラウザのダウンロード操作をトリガーすることです。この属性を設定すると、ダウンロード時に新しいファイル名を使用できます。 フロントエンドはハイパーリンクを作成し、バックエンドからファイル ストリームを受信します。 axios.get(`/operation/ruleImport/template`, { responseType: "blob" // サーバー応答のデータ型。'arraybuffer'、'blob'、'document'、'json'、'text'、'stream' のいずれか。デフォルトは 'json' です。 }) .then(res => if(!res) 戻り値 const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) // データを処理し、ファイルの種類を設定するための blob オブジェクトを構築します if (window.navigator.msSaveOrOpenBlob) { // IE10 と互換性があります navigator.msSaveBlob(blob、this.filename) } それ以外 { const href = URL.createObjectURL(blob) //指定されたblobオブジェクトを表す新しいURLを作成します。const a = document.createElement('a') //aタグを作成します。a.style.display = 'none' a.href = href //ダウンロードリンクを指定 a.download = this.filename //ダウンロードファイル名を指定 a.click() //ダウンロードをトリガー URL.revokeObjectURL(a.href) //URLオブジェクトを解放 } // ここでリンクを作成する必要はありません。window.open(href) を呼び出して直接ダウンロードすることもできます。 .catch(エラー => { コンソール.log(エラー) }) 注: バックエンド インターフェイスをリクエストする場合は、リクエスト ヘッダーに {responseType: 'blob'} を追加します。ダウンロードするファイル名を設定する場合は、拡張子を直接設定できます。設定されていない場合は、ブラウザーが自動的に正しいファイル拡張子を検出し、ファイルに追加します。 3. js-file-downloadプラグイン経由インストール: npm インストール js-file-download --S 使用 'js-file-download' からファイルをインポートします axios.get(`/operation/ruleImport/template`, { responseType: 'blob' // 返されるデータ型}) .then(res => { ファイルダウンロード(res.data, this.fileName) }) 上記は、Excel ストリーム ファイルをダウンロードし、Vue でダウンロード ファイル名を設定する方法の詳細です。Excel ストリーム ファイルをダウンロードし、Vue でダウンロード ファイル名を設定する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Windows 7 64 ビットに最新バージョンの MySQL サーバーをインストールする方法のグラフィック チュートリアル
前回のブログで、Xiao Xiong は関連する要素の操作方法を更新しましたが、同じ要素のグループが...
1.0 Redis の永続性Redis はメモリ内データベースです。サーバー プロセスが終了すると、...
フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...
エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...
目次1. 部分文字列() 2. サブストラクチャ() 3.インデックス() 4.最後のインデックス(...
PHP のコンパイル時に -enable-gd-jis-conv オプションを追加することで発生する...
ナレッジポイントをプレビューします。アニメーションフレーム背景グラデーションvar() と calc...
序文実際のプロジェクトの開発では、通常、プロジェクト開発フェーズ、テストフェーズ、最終オンラインフェ...
vue+element UI は Excel データをエクスポートするためのパブリック関数をカプセル...
目次例えば:一般的な執筆:要約する例えば:次に、データベースのUSERテーブルにUserオブジェクト...
一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...
目次ドロップダウン複数選択ボックスアップグレード - すべてのオプションを追加改訂と改善を求める製品...
なぜvimを学ぶのかLinuxには多数の設定ファイルがあるため、Linuxには多くのテキスト処理ツー...
序文オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証...
ステップ1: サードパーティの信頼できるSSL証明書に署名するAlibaba Cloud で直接、無...