PHP+Javascript实现在线拍照功能实例


Posted in PHP onJuly 18, 2015

本文实例讲述了PHP+Javascript实现在线拍照功能。分享给大家供大家参考。具体如下:

我们在一些WEB应用中可能会遇到这样的情况,用户需要自己现场拍照并上传到会员系统。比如驾校采集指纹拍照流程、考试现场采集照片等。我们今天要讲的是如何使用javascript和PHP实现一个简单的在线拍照并上传的功能。

实现这个功能的前提是你的电脑设备上需要安装有摄像头设备,以及你的浏览器需要支持flash

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Javascript+PHP实现在线拍照功能</title>
</head>
<body>
<div id="cam">
<!--调用摄像组件并显示图像-->
<input type=button value="点击这里拍照" class="btn" onclick="take_snapshot()">
http://siteweb.com/sitemaps.xml
</div>
<div id="results">
<!--显示上传结果-->
</div>
</body>
</html>

在body中加入一个用于调用摄像组件的容器id#cam和一个显示上传信息的容器id#results。
 
Javascript
 
接下来调用摄像组件,我们先载入webcam.js,用于拍照和上传的js库。

<script type="text/javascript" src="webcam.js"></script>
 
然后在容器id#cam中,加入以下代码:
<script language="JavaScript">
webcam.set_api_url( 'action.php' );
webcam.set_quality( 90 ); // 图像质量(1 - 100)
webcam.set_shutter_sound( true ); // 拍照时播放声音
document.write( webcam.get_html(320, 240, 160,120) );
</script>

我们调用了webcam,其中webcam.set_api_url用来设置图像上传交互的php路径,set_quality可设置图像质量,set_shutter_sound设置声音,get_html输出摄像组件,参数即宽度、高度、上传后宽度、上传后高度。
 
当点击按钮拍照时,需要执行以下代码:

<script language="JavaScript">
webcam.set_hook( 'onComplete', 'my_completion_handler' );
function take_snapshot() {
document.getElementById('results').innerHTML = '<h4>Uploading...</h4>';
webcam.snap();
}
function my_completion_handler(msg) {
if (msg.match(/(http\:\/\/\S+)/)) {
var image_url = RegExp.$1;
document.getElementById('results').innerHTML =
'<h4>Upload Successful!</h4>' +
'<img src="' + image_url + '">';
webcam.reset();
}
else alert("PHP Error: " + msg);
}
</script>

当执行拍照动作时,代码与后台php交互,如果上传图片完成后,则返回相应的信息。
 
PHP
 
action.php所做的就是将本地拍照的图像上传到服务器,并将图片路径返回给前端。注意存放图片的路径要给写权限。

$filename = date('YmdHis') . '.jpg';
$result = file_put_contents( 'pics/'.$filename, file_get_contents('php://input') );
if (!$result) {
print "ERROR: Failed to write data to $filename, check permissions\n";
exit();
}
$url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/pics/' . $filename;
print "$url\n";

这里只是简单的介绍了下在线拍照和上传功能,其实深入应用场景如上传后再裁剪,生成多张不同比例的图像等等,大家自己去琢磨吧。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
深入解析php之apc
May 15 PHP
php实现文件下载(支持中文文名)
Dec 04 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
May 04 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
PHP类型约束用法示例
Sep 28 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 #PHP
简单谈谈PHP vs Node.js
Jul 17 #PHP
php+html5基于websocket实现聊天室的方法
Jul 17 #PHP
php获取错误信息的方法
Jul 17 #PHP
PHP实现C#山寨ArrayList的方法
Jul 16 #PHP
PHP计算加权平均数的方法
Jul 16 #PHP
PHP基于工厂模式实现的计算器实例
Jul 16 #PHP
You might like
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python实现代码统计工具
2019/09/19 Python
python处理写入数据代码讲解
2020/10/22 Python
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
linux下进程间通信的方式
2013/01/23 面试题
需求分析说明书
2014/05/09 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
学习考察心得体会
2014/09/04 职场文书
领导干部作风建设总结
2014/10/23 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
教师节简报
2015/07/20 职场文书