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のネストされたトランザクションで発生する問題

MySQL はネストされたトランザクションをサポートしていますが、それを実行する人は多くありません....

CentOS7 インストール GUI インターフェースとリモート接続の実装

ブラウザ (Web ドライバー) ベースの Selenium テクノロジを使用してデータをクロールす...

Ember.js と Vue.js の詳細な比較

目次概要フレームワークを選択する理由は何ですか? js のエンバーEmber.js と Vue.js...

JavaScript/TypeScript で同時リクエスト制御を実装するためのサンプルコード

シナリオリクエストが 10 件あるが、同時リクエストの最大数は 5 件で、リクエスト結果が必要である...

2時間のDocker入門チュートリアル

目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...

Vue で Axios 非同期リクエスト API を使用する方法

目次基本的なHTTPリクエストの設定async/await を使用した Axios Axios によ...

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

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

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...

MySQL バッチ挿入とユニークインデックスの問題に対する解決策

MySQL バッチ挿入の問題プロジェクトを開発しているときに、古いシステムの基本データを事前にインポ...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

Linuxにおけるselinuxの基本設定チュートリアルの詳細な説明

selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...

Tomcatの各ポートの機能の詳細な説明

tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、800...

JavaScript の 3 つの BOM オブジェクト

目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...

Virtualbox に Centos7 仮想マシンをインストールする詳細なグラフィック チュートリアル

1. Centos7をダウンロードするダウンロードアドレス: https://mirrors.tun...

スライダー効果を実装するミニプログラム

この記事の例では、スライディングブロック効果を実現するための小さなプログラムの具体的なコードを参考ま...