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 プロジェクトを展開します

推薦する

Vueスロットの詳細な説明

1. 機能: 親コンポーネントが子コンポーネントの指定された位置に HTML 構造を挿入できるように...

Tomcat マルチポートドメイン名アクセスと gzip 圧縮方式を有効にする構成

1. デフォルトのポート8080に加えて、ドメイン名のアクセスとserver.xmlのオープンにポー...

Web デザイン TabIndex 要素

TabIndex は、Tab キーを押して、定義された TabIndex 要素を順番に取得し、各要素...

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

目次トリガーとは何かトリガーを作成する表は次のようになります。さらにいくつかの単語を挙げます。制限と...

ネイティブ js で呼び出し、適用、バインドを実装する方法

1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...

ApacheBench でマルチ URL をサポートする方法

標準の ab は単一の URI でのストレス テストのみをサポートしており、実際のニーズを満たしてい...

Vue-Element-Adminはログインジャンプを実現するために独自のインターフェースを統合しています

1. まずリクエスト設定ファイルを見て、axios.createメソッドを見てください。baseUR...

Vue で動的に読み込まれたローカル画像を処理する方法

問題を見つける今日は、vue ファイルにローカル画像を導入する際に問題が発生したので、この記事を書き...

Docker Swarm サービス オーケストレーション コマンドの詳細な説明

1. はじめにDocker には、タスクを構成する複数の Docker コンテナをオーケストレーショ...

単一テーブルのMySQLバックアップとリストアに関する簡単な説明

A. MySQLバックアップツールxtrabackupのインストール1. Percona 公式 xt...

MySQL の基本: グループ化関数、集計関数、グループ化クエリの詳細な説明

目次1. 使い方が簡単2. DISTINCTを使用して重複を削除する3. COUNT()の詳細な紹介...

npm グローバル モジュールのデフォルトのインストール パスを変更するためにノードのインストールをカスタマイズする手順

node を D ドライブにインストールしましたが、C ドライブのスペースを占有したくなかったため、...

VueはElement el-uploadコンポーネントを使用してピットに足を踏み入れます

目次1. 基本的な使い方2. 画像量の制御3. 画像形式の制限/複数の画像を選択可能補足: vueプ...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

Linux で MySQL をインストールして設定する

システム: Ubuntu 16.04LTS 1\公式サイトからmysql-5.7.18-linux-...