Vant Uploaderは1枚以上の写真をアップロードするコンポーネントを実装します

Vant Uploaderは1枚以上の写真をアップロードするコンポーネントを実装します

この記事では、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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • モバイル端末上のVue+Vantのアップローダーは、画像のアップロード、圧縮、回転の機能を実現します。
  • Vant アップローダーは、画像をアップロードするためのドラッグ アンド ドロップ機能を実装します (カバーとして設定)

<<:  VScode設定のリモートデバッグLinuxプログラムの問題を解決する

>>:  単一のMySQLテーブルを復元する手順

推薦する

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...

mysql5.6 マスタースレーブ設定と非同期の問題の詳細な説明

目次1. MySQL マスタースレーブレプリケーションの原理2. MySQLのコンパイルとインストー...

JavaScript でオブジェクトのプロパティを削除する方法

1. 削除delete は、オブジェクトのプロパティを残さずに削除する唯一の方法ですが、その「代替」...

Macシステムをインストールした後にVMWareがフルスクリーンで表示できない問題を解決する

システム: VMTOOLs ダウンロード:リンク: https://pan.baidu.com/s/...

VMWare Linux MySQL 5.7.13 のインストールと設定のチュートリアル

この記事では、参考までにVMWare LinuxにMySQL 5.7.13をインストールするチュート...

バッテリー残量が少なくなったときに Linux を自動シャットダウンする方法

序文最近、私の住居の電力事情が不安定で、突然の停電が頻繁に起こります。ノートパソコンを持っているので...

純粋なCSSを使用してスクロールシャドウ効果を実現します

端的に言うと、スクロール可能な要素には非常によくある状況があります。通常、スクロールすると、要素が現...

Tomcat を使用して Centos 環境に SpringBoot WAR パッケージをデプロイする

戦争パッケージを準備する1. 既存のSpringBootプロジェクトを準備し、pomに依存関係を追加...

JSはスネークゲームを実装する

目次1. 初期化構造2. 蛇の色のレンダリング3. ヘビの動き4. ヘビの死を判定する方法 ヘビの死...

Vueはズームイン、ズームアウト、ドラッグ機能を実装しています

この記事では、参考までに、ズームインとズームアウトのドラッグ機能を実現するためのVueの具体的なコー...

MySQL 8.0.22 解凍版インストールチュートリアル(初心者向け)

目次1. リソースのダウンロード2. ソフトウェアを解凍する2.1 場所を選択する2.2 名前を変更...

vue3 を使用してカウント関数コンポーネントのカプセル化例を実装する

目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. アイデア2. 準備2. ...

MySQLで重複行を削除する方法

SQL文 /* MySQL で重複行を削除するいくつかの方法 ---Chu Minfei ---20...