写真をアップロードして顔を認識する Vue+axios サンプルコード

写真をアップロードして顔を認識する Vue+axios サンプルコード

この記事では、主に写真をアップロードして顔認識を実現するための vue+axios のサンプルコードを紹介し、次のように共有します。

まずは最終的な効果を見てみましょう。

ここで、Vant のファイルアップロードコンポーネントが使われます。バックエンドはアップロードされた写真の顔を認識し、フロントエンドに返し、顔に一致する作業番号または学生番号を取得します。これにより、後で他のシステムでも使用できるようになります。たとえば、顔写真が正常にアップロードされ、認識されると、会議室へのアクセスが顔で開かれるようになります。現在は人物の顔をアップロードするエフェクトのみ行っております。

Axios リクエスト

axios を使用して method: post でデータをリクエストする場合、デフォルトのパラメータ データ型は文字列です。json 形式で渡す必要がある場合は、バックエンドで受け入れられる型に応じて qs.js を導入する必要があります。

Qs処理データ分析

まず、qs は npm リポジトリによって管理されるパッケージであり、npm install qs コマンドでインストールできます。
アドレス: www.npmjs.com/package/qs

qs.parse()、qs.stringify()

  • qs.parse()はURLをオブジェクトに解析します
  • qs.stringify()はオブジェクトをURL形式にシリアル化し、&で連結します。

実際のプロジェクトでの使用方法は次のとおりです。

 varデータ = {
    コード:GetRequest().コード、
    ファイル:ファイル.コンテンツ
}
アクシオス({
   メソッド:'post',
   url:'/app/face/upload',
  データ:qs.stringify(データ)
})

Vantアップロードファイル形式

ファイルをアップロードするときは、バックエンドに渡すために必要なフォーマットに注意する必要があります。これは、ファイル ストリームまたは base64 のいずれかです。vant はすでに両方のタイプを処理していますが、ファイル ストリームをバックエンドに直接渡すために formData も使用する必要があります。一部のバックエンドでは、base64 を自分で処理してフィルターする必要があります。ここでは、通常のfileList[0].content.replace(/^data:image\/\w+;base64,/, '')使用して、バックエンドに渡す必要があります。

完全なコード

    <div id="アプリ">
        <div style="display:flex;    
        コンテンツの中央揃え: 中央;
        アイテムの位置を中央揃えにします。
        幅:100vw;
        高さ: 100vh;">
            <div>
              <van-uploader v-model="fileList" upload-text='正面写真' :max-count="1" :after-read="afterRead" ></van-uploader>
              <p style="text-align:center;font-size:15px;" v-if="data">学生ID/勤務先ID: {{data}}</p>
            </div>
          </div>
      </div>
 
  <スクリプト>
   var アプリ = 新しい Vue({
    el: '#app',
    データ: {
      ファイルリスト: [],
      データ:''、
    },
    方法:{
      afterRead(ファイル) {
      //アップロード中、アップロード中にステータスプロンプトステータスを追加します
        file.status = 'アップロード中';
        file.message = 'アップロード中...';
        varデータ = {
            コード:this.$route.query.code,
            ファイル:ファイル.コンテンツ
          }
        アクシオス({
          メソッド:'post',
          url:'app/face/upload',
          データ:{
            コード:GetRequest().コード、
            ファイル:ファイル.コンテンツ
          }
        }).then((res)=>{
        //リクエストが返され、成功ステータスが取得されました。アップロード成功プロンプトのステータスを done に設定します
          (res.data.code == 0)の場合{
            file.status = '完了';
            ファイル.メッセージ = '';
            this.data = res.data.data.userNo
            this.$notify({ type: 'success', message: 'アップロードに成功しました' });
            
          // リクエストが返され、アップロードが失敗し、ステータスが失敗であるというプロンプトが表示されます
          }それ以外{
            file.status = '失敗';
            file.message = 'アップロードに失敗しました';
           this.$notify({ type: 'warning', message: res.data.msg });
           this.data = ''
          }
        }).catch(()=>{
          file.status = '失敗';
          file.message = 'アップロードに失敗しました';
          this.data = ''
        })
      },
    }
  })
  </スクリプト>

以上で、vue+axios で画像アップロードと顔認識を実装するサンプルコードについての記事は終了です。vue axios で画像アップロードと顔認識の関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue2+トラッキングでPC上で顔認識を実現する例

<<:  MySQLデータ損失の原因と解決策

>>:  Webデザインチュートリアル(8):Webページの階層と空間デザイン

推薦する

Windows7 での Mysql5.7 my.ini ファイルの読み込みパスとデータの場所の変更方法

更新: MySQL の公式 Web サイトにアクセスして MySQL インストーラーをインストールし...

IdeaでTomcatを起動したときに複数のリスナーが報告される問題を解決する

エラーのスクリーンショット例外が発生した場所が見つかりません。解決策: リソースディレクトリにlog...

MySQL で指定エンコーディングを実装する際の落とし穴について

前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...

docker run -v はデータボリュームを異常にマウントし、コンテナのステータスは常に再起動になります。

問題点: docker run に -v パラメータを追加すると、コンテナは常に再起動状態になります...

JavaScript のクロージャの詳細な説明

導入クロージャは JavaScript の非常に強力な機能です。いわゆるクロージャは関数内の関数です...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

MYSQLについては、データ型と操作テーブルを知る必要があります

データ型と操作データテーブル1.1 MySQL 型: 整数 1.2 MySQL データ型: 浮動小数...

Webサービスのリモートデバッグとタイムアウト動作原理の分析

Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...

Vue ページに img 画像を導入する方法

HTMLを学ぶとき、画像タグ<img>は画像を導入します <img src=&qu...

ElementUI el-select の過剰なデータに対する解決策についての簡単な説明

目次1. シナリオの説明2. 解決策オプションが多すぎる el-select コンポーネントの解決策...

手の動きをリアルタイムで監視するための Handtrack.js ライブラリ (推奨)

【はじめに】: Handtrack.jsは、ブラウザ上で直接リアルタイムの手の動きの追跡と検出を実...

MySQL 5.7.18 zip バージョンのインストール チュートリアル

MySQL の mysql 5.7.18 zip バージョンは、クリックして次のステップをクリックし...

Dockerコンテナでアプリケーションサービスを自動的に起動する方法の例

コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...

Vueパンくずコンポーネントのカプセル化方法

Vueはパンくずコンポーネントをカプセル化して参照します。具体的な内容は次のとおりです。効果を達成す...

CentOS8.1 で Gitlab サーバーを構築するための詳細なチュートリアル

Gitlab と Github の違いについては、あまり説明する必要はありません。一言でまとめると、...