この記事では、1枚以上の写真をアップロードするためのVant Uploaderコンポーネントを紹介します。具体的な内容は次のとおりです。 HTML部分 <テンプレート> <div class="contWrap"> <バンアップローダー v-model="ファイルリスト" :multiple="true" :before-read="beforeRead" :after-read="afterRead" :before-delete="アップロード画像を削除" アップロードアイコン="プラス" > <!-- 注: これはカスタムアップロードスタイルです --> <!-- <p> <バンアイコン 名前="プラス" カラー=”#07c160” サイズ=".5rem" /> 写真をアップロード</p> --> </van-uploader> </div> </テンプレート> js部分 <スクリプト> 「axios」からaxiosをインポートします。 エクスポートデフォルト{ 名前: "uploadImages", データ() { 戻る { ファイルリスト: [], アップロード URL: "/api/upload/fileUpload", ヘッダー: { トークン: this.$store.state.account.token, }, }; }, メソッド: { // ブール値を返す beforeRead(file) { if (ファイルインスタンス配列) { //配列ファイルかどうかを判定します。forEach((v) => { this.checkFile(v); }); } それ以外 { this.checkFile(ファイル); } true を返します。 }, //画像タイプ checkcheckFile(file) { const フォーマット = ["jpg", "png", "jpeg"]; 定数インデックス = file.name.lastIndexOf("."); const finalName = file.name.substr(インデックス + 1); if (!format.includes(finalName.toLowerCase())) { Toast("アップロードしてください" + format.join(",") + "画像をフォーマットしてください"); false を返します。 } }, afterRead(ファイル) { // この時点で自分でファイルをサーバーにアップロードできます if (file instanceof Array) { ファイル.map((v) => { v.status = "アップロード中"; v.message = "アップロード中..."; this.uploadImg(v); }); } それ以外 { file.status = "アップロード中"; file.message = "アップロード中..."; this.uploadImg(ファイル); } }, //アップロード uploadImg(file) { フォームデータを作成します。 formData.append("ファイル", file.file); アクシオス .post(this.uploadUrl, フォームデータ, { ヘッダー: this.headers、 }) .then((res) => { (res.data)の場合{ if (ファイルインスタンス配列) { //配列ファイルかどうかを判定します。map((v, i) => { v.status = "成功"; v.メッセージ = ""; v.url = res.data[i]; }); } それ以外 { file.status = "成功"; ファイル.メッセージ = ""; ファイルのURLをres.data.uploadUrlに設定します。 } } }) .catch((エラー) => { これを通知します。{ タイプ:「警告」、 メッセージ: 「アップロードに失敗しました」、 }); }); }, //削除 delUploadImg(item) { this.fileList = this.fileList.filter((v) => v.url != item.url); } }, }; </スクリプト> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: VScode設定のリモートデバッグLinuxプログラムの問題を解決する
目次序文1. リクエストをキャンセルする方法2. 重複リクエストの判定方法3. 繰り返しリクエストを...
設定ファイルを server.xml と content.xml に書き込みます。サーバーを再起動す...
この記事では、音楽プレーヤーを実装するためのVue.jsの具体的なコードを参考までに共有します。具体...
実際の開発ではポップアップウィンドウがよく使われます。CSS3を勉強していたときに、閉じることができ...
この記事では、Docker コンテナとフロントエンド プロセスの関係と、コンテナを永続的に実行できる...
NextCloud コンピュータ上の任意のファイルやフォルダを共有し、NextCloud サーバーと...
この記事では、例を使用して MYSQL パフォーマンス アナライザー EXPLAIN の使用方法を説...
<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトのタ...
1. MySQL インストール パス D:\xxx\MYSQL\MySQL Workbench CE...
Activiti7 の正式リリース以降、SpringBoot2.x との統合開発を全面的にサポートし...
会社の開発者がテスト環境で挿入ステートメントを実行すると、正常に実行されるまでに 10 秒以上かかり...
ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...
サブクエリの分類返された結果セットによる分類サブクエリは、返される結果セットの違いに応じて、テーブル...
MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...
目次1. はじめに2. 構成3. 作業プロセス4. 建築5. 表示例MHA (Master HA) ...