FlashとjQueryを組み合わせたプラグインでWebカメラで撮影した画像をアップロード
2024/01/13
FlashとjQueryを組み合わせたプラグインを用いてWebカメラで撮影した画像をフォーム等でアップロードする方法のメモ。jQuery webcam pluginというのがswfも同梱されてて非常に便利だった。
jQuery webcam plugin
http://www.xarg.org/project/jquery-webcam-plugin/
使い方
撮影ページ
<?php $id = md5(uniqid(rand(), true)); ?> <!DOCTYPE html> <html> <head> </head> <body> <div id="jquery_camera"></div> <button id="btn">キャプチャ</button> </div> <?php if($_GET['id']){ ?> <img src="<?php echo $_GET['id']?>.jpg"> <?php } ?> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript" src="./jquery.webcam.min.js"></script> <script type="text/javascript"> $(function(){ var width = 320; var height = 240; $("#jquery_camera").webcam({ width: width, height: height, mode: "save", swffile: "./jscam.swf", onTick: function() {}, onSave : function () { window.location = "./index.php?id=<?php echo $id;?>"; }, // Capture時に呼び出される onCapture: function() { webcam.save('./upload.php?id=<?php echo $id;?>'); }, debug: function() {}, onLoad: function() { $("#btn").click(function(){ webcam.capture(); }); } }); }) </script> </body> </html>
保存ページ
<?php $name = $_REQUEST['id']; $str = file_get_contents("php://input"); file_put_contents("/hoge/webcam/{$name}.jpg", pack("H*", $str)); ?>
その他
これならIEでも撮影できる。ただスマホだとflash使えない場合が多いので、他の方法も探しておいたほうが良さそう。
関連記事
-
jQueryでAjax通信したデータをPHPで受け取り、zip化したファイルをダウンロードさせる方法
jQueryのAjaxで何らかのデータをPHP側に送信し、PHP側で当該データを ...
-
要素の表示or非表示
今まで要素の表示or非表示をCSSで操作する際、 display:none; / ...
-
IE11でフォーム送信時に二重登録される
Internet Explorer11でform送信時にデータが二重登録されると ...
-
「jQuery.browser is undefined」エラーの対応方法
jQueryのプラグインを使っていて1.9以降だと「jQuery.browser ...
-
jQselectableでセレクトボックスをリッチにする
入力フォームみたいなもので元々はテキストボックス内に 都道府県を入れてもらうとい ...