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

推薦する

jQuery はシャッター効果を実現します (li 配置を使用)

この記事では、ブラインド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具体...

擬似静的およびクライアント適応型 Nginx の設定方法

バックエンドは thinkphp3.2.3 フレームワークを使用します。他の言語を使用している場合は...

MySQL 文字セットの変更に関する実践的なチュートリアル

序文: MySQL では、システムが多くの文字セットをサポートしており、異なる文字セット間にはわずか...

MySQL で戻り値ありと戻り値なしのストアド プロシージャを書く 2 つの方法

プロセス1: 戻り値あり: proc_addNum が存在する場合はプロシージャを削除します。 プロ...

JavaScript は div マウス ドラッグ効果を実装します

この記事では、divマウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考まで...

MySQLフィルタリングレプリケーションのアイデアの詳細な説明

目次mysql フィルター レプリケーションメインデータベースに実装ライブラリから実装いくつかの質問...

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する複数の方法

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する 7 つの方法。コー...

MySQL の instr を使用したファジー クエリ メソッドの紹介

MySQL の内部関数instrを使用すると、従来の like クエリ メソッドを置き換えることがで...

Linux での一般的なシェル スクリプト コマンドと関連知識

目次1. 覚えておくべき知識1. 変数タイプ2. シェル変数の説明3. シングルクォート、ダブルクォ...

MySQLトリガーの例の詳細な説明

目次トリガーとは何かトリガーを作成する複数の実行ステートメントを持つトリガーの作成制限と考慮事項要約...

Redo ログと Undo ログに基づく MySQL クラッシュ回復の分析

目次MySQLクラッシュ回復プロセス1. ブラックボックス下のデータフローを更新する2. やり直しロ...

MySQL 結合クエリ構文と例

接続クエリ:これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 ...

HTML テーブルタグチュートリアル (26): セルタグ

<TD> タグの属性は、テーブル内のセルのプロパティを設定するために使用されます。表 &...

MySQL 集計関数のネストされた使用操作

目的: MySQL 集計関数のネストされた使用集計関数は直接ネストできません。例: max(coun...

CSS ハック \9 と \0 は IE11\IE9\IE8 のハッキングには機能しない可能性があります

Web ページやフォームを設計するたびに、さまざまなブラウザ、特に IE ファミリの互換性の問題に悩...