この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次のとおりです。 1. タグのダウンロード属性 H5では、ファイルを直接ダウンロードするためにaタグにダウンロード属性を追加し、ファイル名はダウンロード属性ファイル名になります。
2. URL.createObjectURL URL.createObjectURL() メソッドは、渡されたパラメータに基づいて、パラメータ オブジェクトを指す URL を作成します。この URL の有効期間は、作成されたドキュメント内でのみ存在します。新しいオブジェクト URL は、実行された File オブジェクトまたは Blob オブジェクトを指します。 File オブジェクトはファイルです。たとえば、input type="file" タグを使用してファイルをアップロードする場合、その中の各ファイルは File オブジェクトになります。 Blob オブジェクトはバイナリ データです。たとえば、new Blob() によって作成されたオブジェクトは Blob オブジェクトです。たとえば、XMLHttpRequest で responseType が blob として指定されている場合、戻り値も blob オブジェクトになります。 URL を window.URL || window.webkitURL とします。 downloadUrl = URL.createObjectURL(blob || file); 3. URL.revokeObjectURL URL.revokeObjectURL() メソッドは、URL.createObjectURL() によって作成されたオブジェクト URL を解放します。オブジェクトが不要になった場合は解放する必要があります。解放されると、オブジェクト URL は指定されたファイルを指さなくなります。 ダウンロード URL と URL.revokeObjectURL(ダウンロード URL); 4. Vue.jsでファイルをアップロードおよびダウンロードする <テンプレート> <div class="btn-box"> <h3>ファイルのアップロード:</h3> <input class="file-input" type="file" @change="getFile($event)" /> <el-button type="primary" @click="upload">ファイルをアップロード (POST)</el-button> <h3>ファイルのダウンロード:</h3> <el-button type="primary" @click="downloadLink">リンクされたファイルをダウンロードする (window.open)</el-button> <el-button type="primary" @click="downloadBlobByGet">バイナリ ストリーム ダウンロード (GET)</el-button> <el-button type="primary" @click="downloadBlobByPost">バイナリ ストリーム ダウンロード (POST)</el-button> </div> </テンプレート> <スクリプト> 「axios」からaxiosをインポートします エクスポートデフォルト{ 名前: "attendPoint"、 データ() { 戻る {、 ファイル: null、 ファイル名: "test.xlsx" } }, メソッド: { // ファイルを選択 getFile(event) { this.file = イベントターゲットファイル[0]; }, // ファイルをアップロード (POST) アップロード() { url = "http://localhost:3000/upload/test"; formData を新しい FormData() にします。 formData.append("名前", "zhangsan"); formData.append("年齢", "18"); formData.append("ファイル", this.file); 設定 = { ヘッダー: { 「コンテンツタイプ」: 「マルチパート/フォームデータ」 } } axios.post(url, formData, config).then((res) => { this.fileName = res.data.downloadUrl; this.$message.success("アップロードに成功しました!"); }).catch(() => { this.$message.error("まずファイルをアップロードしてください!"); }) }, // リンク付きのファイルをダウンロードする (window.open) ダウンロードリンク() { if (this.fileName) { window.open("http://localhost:3000/download/test?fileName=" + this.fileName); } }, //バイナリストリームのダウンロード (GET) 非同期ダウンロードBlobByGet() { urlGet = "http://localhost:3000/download/test?fileName=" + this.fileName; とします。 fileData を axios.get(urlGet, { responseType: "blob" }) で待機します。 URL を window.URL || window.webkitURL とします。 downloadUrl = URL.createObjectURL(fileData.data); とします。 a = document.createElement("a"); とします。 a.href = ダウンロードUrl; a.download = this.fileName; //ダウンロード後のファイル名 a.click(); a = ヌル; ダウンロード URL と URL.revokeObjectURL(ダウンロード URL); }, //バイナリストリームのダウンロード(POST) 非同期ダウンロードBlobByPost() { urlPost = "http://localhost:3000/download/post/test" とします。 fileData = axios({ を待ちます メソッド: "post", url: urlPost, // リクエスト アドレス data: { fileName: this.fileName }, // パラメーター responseType: "blob" // サーバーから返されるデータ タイプを示します }) URL を window.URL || window.webkitURL とします。 downloadUrl = URL.createObjectURL(fileData.data); とします。 a = document.createElement("a"); とします。 a.download = this.fileName; a.href = ダウンロードUrl; クリック(); a = ヌル; ダウンロード URL と URL.revokeObjectURL(ダウンロード URL); }, }, } </スクリプト> <スタイルスコープ> .btnボックス{ パディング: 20px; } .elボタン、 入力{ 最大幅: コンテンツに適合; 表示: ブロック; マージン: 20px; } </スタイル> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Centos7 MySQL データベースのインストールと設定のチュートリアル
目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...
目次1. フックとは何ですか? 2. フックはなぜ現れるのでしょうか? 3. よく使われるフックは何...
Vue+jsはビデオのフェードインとフェードアウトを実現します。参考までに、具体的な内容は次のとおり...
CentOS6.9はMysql5.7をインストールします。参考までに、詳細は次のとおりです。 1. ...
目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...
MySQL データベース操作では、一部のクエリを実行するときにデータベース エンジンが完全なテーブル...
1.mysql-5.7.19-winx64.zip(これは無料のインストールバージョンで、約318 ...
序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...
序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...
2.1 セマンティクス化により、Webページが検索エンジンに理解されやすくなりますこの章では、We...
{ {}} 値を取得すると、タグの元のコンテンツはクリアされませんv-textは値を取得し、タグの元...
現在、ほぼすべての大規模な Web サイトとアプリケーションは分散方式で展開されています。分散シナリ...
目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...
SQL UNIQUE制約UNIQUE 制約は、データベース テーブル内の各レコードを一意に識別します...
前回の記事では、Ubuntu 上の webrtc ベースの多人数ビデオチャット サービスの詳細なコー...