写真をアップロードして顔を認識する 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ページの階層と空間デザイン

推薦する

MySQLデータベースを作成し、中国語の文字をサポートする方法

まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...

仮想マシンに Windows Server 2008 オペレーティング システムをインストールする

この記事では、Windows Server オペレーティング システムのインストールと企業でのそのア...

Vite2とVue3を使用したウェブサイトの国際化を実現するプロセス全体

目次序文vue-i18nをインストールするロケールの設定getLangs.js の実装i18nインス...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

Web プロジェクト開発における 2 つのトークン理由とサンプル コードの分析

目次質問:プロジェクトには 2 つのトークンがあり、1 つは有効期間が 2 時間 (ショート トーク...

Linux環境でglogログライブラリを使用する方法

Linuxライブラリを生成するLinux版はcentos7.3を使用し、コンパイルしてライブラリを生...

MySql テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

Dockerにおけるオーバーレイネットワークの詳細な説明

Docker 公式ドキュメントからの翻訳、原文: https://docs.docker.com/n...

MacでのMySQL初期化パスワード操作

Macでデータベースを操作する際に個人が遭遇するデータベース起動の問題の簡単な記録1. Apple-...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

MySQL 接続例外とエラー 10061 の解決方法

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

HTML iframe 使用状況の概要の収集

Iframe 使用状況の詳細な分析<iframe frameborder=0 width=17...

vue3 統合 API における vue2 の $refs の代替方法についての簡単な説明

vue2 プロジェクト開発の経験があれば、$refs に精通しているでしょう。 vue3 の急激なア...

mysql バックアップ スクリプト mysqldump の使い方の詳細な説明

この記事では、参考までにMySQLバックアップスクリプトを紹介します。具体的な内容は次のとおりです。...