VueはPCで写真をアップロードする機能を実現

VueはPCで写真をアップロードする機能を実現

この記事の例では、PC上で写真アップロード機能を実現するためのVueの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

<!DOCTYPE html> 
<html> 
  <ヘッド> 
    <メタ文字セット="UTF8">
  </head> 
  <本文>  
 
<div id="コンテンツホルダー">       
<video id="video" width="320" height="320" 自動再生></video>       
<button id="camera">写真を撮る</button>        
<キャンバスid="キャンバス" 幅="320" 高さ="320">
</キャンバス> 
</div>
 
<script type="text/javascript">  
var ビデオ = document.getElementById('ビデオ');
varトラック;
var カメラ = document.getElementById('カメラ');
 window.addEventListener("DOMContentLoaded", 関数(){
 navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
  (ナビゲーターのユーザーメディアを取得する){
    ナビゲーター.getUserMedia({video:true},
     関数(ストリーム) {
      track = stream.getTracks()[0]; // これを使用してカメラをオフにします。video.src = window.URL.createObjectURL(stream);
      ビデオ.onloadedmetadata = 関数(e) {
           ビデオを再生します。
         };
     },
     関数(エラー) {
        アラート(err.name);
     }
    );
  }  
 
  
 });   
 
 
Camera.onclick = 関数(){
 var キャンバス = document.getElementById('キャンバス');
 var context2D = canvas.getContext("2d");
 context2D.fillStyle = "#ffffff";
 context2D.fillRect(0, 0, 320, 320);
 context2D.drawImage(ビデオ、0、0、320、320);
 var image_code = canvas.toDataURL("image/png"); // バックエンドに渡される Base64
 
 コンソール.log(画像コード)
 if (null != トラック) {
            track.stop(); //カメラを閉じる}
 
};
</スクリプト>
  </本文> 
</html>

上記のコードは、Webページが開かれたときにカメラを呼び出します。

バックエンドに送信されるコードはbase64コードです

以下はVueを使用してバックグラウンドに渡したコードです

var パラメータ = {
 ファイル:image_code2
 }
 var a = JSON.stringify(param);
 
 アップロード画像(a)。その後((res) => {
     コンソールログ(res);
          
 });

以下は私のPHPバックグラウンド受信コードです

パブリック関数 uploadImg($name="img",$path='img'){
        $_POST = json_decode(file_get_contents('php://input'),true);
        $パラメータ = $_POST;
        $image_code = $param['ファイル'];
        $img = str_replace('data:image/png;base64,', '', $image_code); //base64 コードを取得します $img = str_replace(' ', '+', $img);
        $data = base64_decode($img);
        $name = time().".png";
        $savepath = "./upload/".$name; //画像が保存される場所 file_put_contents($savepath,$data); //コンテンツをファイルに書き込みます $this->ajaxReturn(array('status'=>'0','data'=>$savepath));
    }

クリックしてカメラを開くようにしたい場合は、カメラからコードを取得してメソッドに組み込むことができます。

var カメラ = document.getElementById('カメラ');
 window.addEventListener("DOMContentLoaded", 関数(){
 navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; 
  
 });   
 
関数デモ(){
 (ナビゲーターのユーザーメディアを取得する){
    ナビゲーター.getUserMedia({video:true},
     関数(ストリーム) {
      track = stream.getTracks()[0]; // これを使用してカメラをオフにします。video.src = window.URL.createObjectURL(stream);
      ビデオ.onloadedmetadata = 関数(e) {
           ビデオを再生します。
         };
     },
     関数(エラー) {
        アラート(err.name);
     }
    );
  }  
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue2.0はカメラを呼び出して写真を撮る機能を実装し、exif.jsは写真アップロード機能を実装します。
  • Vue.js 2.0 モバイル端末の写真圧縮画像プレビューとアップロードの例
  • Vue2は写真の回転問題を解決するために、モバイルアップロード、プレビュー、および画像の圧縮を実装しています。
  • Vuejs 開発コンポーネント共有 H5 画像のアップロード、圧縮、写真の回転問題の処理
  • Vue.js 2.0 モバイル端末の写真圧縮画像アップロードプレビュー機能
  • VueはPCカメラを呼び出して写真機能を実現します
  • Vueはコンピュータカメラを呼び出して写真機能を実現します
  • Vueはローカルカメラを呼び出して写真機能を実現します

<<:  MySQLはtruncateコマンドを使用してデータベース内のすべてのテーブルを素早くクリアします

>>:  Alibaba Cloud Server Linux システムは Tomcat を構築して Web プロジェクトを展開します

推薦する

MySQL 8.0.18 ハッシュ結合は左/右結合をサポートしていません 左と右の結合の問題

MySQL 8.0.18 では、インデックスが作成されていないフィールドに適用でき、等価値の関連付け...

JavaScript 手ぶれ補正のケーススタディ

原理手ぶれ補正の原理は、イベントをトリガーすることはできますが、イベントがトリガーされてから n 秒...

Expressはログイン認証を実装

この記事では、ログイン認証を実装するためのExpressの具体的なコードを例として紹介します。具体的...

mysqlとnavicat間の接続を確立する際の1251エラーを解決する

コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...

Windows 10 の仮想マシンに Mac システムをインストールするグラフィック チュートリアル

1. 仮想マシンバージョン15.5.1をダウンロードする公式サイトから直接最新バージョンをダウンロー...

Linux 環境での Oracle 導入チュートリアル

1. 環境と関連ソフトウェア仮想マシン: VMwore Workstation Linuxシステム:...

Docker-compose チュートリアルのインストールとクイックスタート

目次1. Compose の紹介2. ComposeとDockerの互換性3. Dockerをインス...

keepalived+nginx の高可用性を実装する方法の例

1. keepalived の紹介Keepalived は、もともと LVS クラスタ システム内の...

MYSQL トランザクション チュートリアル Yii2.0 マーチャント引き出し機能

序文私はプログラマーとしてスタートした PHP プログラマーです。これまで、トレーニング コースで勉...

CSS 疑似要素と疑似クラスの魔法のような使い方についての簡単な説明

CSS は Web ページで非常に重要な役割を果たします。近年の CSS の発展に伴い、疑似要素/疑...

Linux コマンドで .sql ファイルをエクスポートおよびインポートする方法

この記事では、Linux コマンドを使用して .sql ファイルをエクスポートおよびインポートする方...

MySQL で遅いクエリ SQL を見つけて最適化する詳細な例

目次1. 遅いクエリSQLを見つけて最適化する方法a. スローログに基づいてスロークエリSQLを見つ...

HTML テーブルタグチュートリアル (11): 水平方向の配置属性 ALIGN

水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...

CSS3 で QR コードスキャン効果を実装する例

オンラインプレビューhttps://jsrun.pro/AafKp/まず効果を見てみましょう:最初の...

Dockerの一般的なコマンドとヒントのまとめ

インストールスクリプトUbuntu / CentOS Debian のインストールに問題があるようで...