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テーブルを復元する手順

推薦する

一般的な JavaScript メモリ エラーと解決策

目次1. タイマー監視2. イベント監視3.オブザーバー4. ウィンドウオブジェクト5. DOM参照...

Linux で PHP curl 拡張機能をインストールする方法の詳細な説明

この記事では、Linux で PHP curl 拡張機能をインストールする方法について説明します。ご...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

nginx/apache 静的リソースのクロスドメインアクセスの問題を解決する詳細な説明

1. Apache 静的リソースのクロスドメイン アクセスApache設定ファイルhttpd.con...

ログインフォームを実装するためのReactサンプルコード

Vue ユーザーとして、React を拡張する時が来ました。antd の導入、less と rout...

CSS のオーバーフロー:hidden エラーの解決方法

失敗の原因今日、カルーセルを書いていたときに、overflow;hidden; が失敗する可能性があ...

Vueプロジェクトのパッケージ化の詳細な説明

目次1. 関連構成ケース1(使用ツールはvue-cil)ケース2(使用するツールはwebpack) ...

WMLタグの概要

構造関連タグ--------------------------------------------...

js を使ってシンプルな虫眼鏡効果を実現

この記事の例では、参考までに簡単な虫眼鏡効果を実現するためのjsの具体的なコードを共有しています。具...

JavaScript 配列を走査する 5 つの方法

目次1. forループ: 基本的でシンプル2. forEach() メソッド: コールバック関数の使...

Docker で Jenkins-2.249.3-1.1 をインストールする詳細な手順

目次1. Dockerをインストールする2. Jenkinsイメージファイルを取得する3. マウント...

ドッカー専用倉庫港湾建設プロセス

1. 準備1.1 港ダウンロードハーバーダウンロードアドレス:リンクリンクの説明を追加し、必要なバー...

Rx レスポンシブプログラミングについての簡単な説明

目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...