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

推薦する

Linux で iostat コマンドを使用するチュートリアル

序文運用・保守を行う人がスキルを持っていなければ、サーバーを操作するのに恥ずかしさを感じてしまうと言...

コード例を通してページ置換アルゴリズムの原理を理解する

ページ置換アルゴリズム: 本質は、限られたメモリをワイヤレス プロセスに対応できるようにすることです...

ElementUIはドロップダウンオプションと複数選択ボックスのサンプルコードを実装します

目次ドロップダウン複数選択ボックスアップグレード - すべてのオプションを追加改訂と改善を求める製品...

Linux のプロセスクラッシュの原因をコアダンプ技術を使用して追跡する簡単な分析

最近、プロジェクトで問題が発生しました。サーバー側のプログラムが突然クラッシュして終了しました。クラ...

Ant Design Blazor コンポーネントライブラリのルーティング再利用マルチタブ機能

最近、Ant Design Blazor コンポーネント ライブラリにマルチタブ コンポーネントを実...

Mysql を 5.7 にアップグレードした後のグループ クエリの問題を解決する

問題を見つける最近MySQLをMySQL 5.7にアップグレードした後、次のようなクエリでグループ化...

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...

Ubuntu 20.04 CUDA & cuDNN のインストール方法 (グラフィカル チュートリアル)

CUDA インストール cuda をダウンロードサポートされているcudaバージョンを表示するには...

WeChatアプレットは写真アップロード機能を実現

この記事の例では、WeChatアプレットで写真をアップロードするための具体的なコードを参考までに共有...

MySQLのページング制限のパフォーマンス問題についての簡単な説明

MySQL ページング クエリは通常、制限を通じて実装されます。 limit は 1 つまたは 2 ...

MySQL 正規表現 (regexp と rlike) の検索機能の例分析

この記事では、例を使用して MySQL 正規表現 (regexp および rlike) の検索機能を...

選択にスタイルを追加するための純粋な CSS (スクリプトなし) 実装

通常は ul、li を介して選択のデフォルト スタイルを変更して、実現をシミュレートします。このよう...

JavaScript の async と await のシンプルで詳細な学習

目次1. はじめに2. 詳しい説明2.1、非同期2.1.1. 関数はPromise以外のオブジェクト...

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...

Element PlusはAffixを実装します

目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...