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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
MySQL数据源表结构图示
Jun 05 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
一个经典的PHP文件上传类分享
Nov 18 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
php 输入输出流详解及示例代码
Aug 25 PHP
php更新cookie内容的详细方法
Sep 30 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常用正则表达式的整理汇总
2013/06/08 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
理理Vue细节(推荐)
2019/04/16 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
Python标准库sched模块使用指南
2017/07/06 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
Python Django view 两种return的实现方式
2020/03/16 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
模具专业推荐信
2013/10/30 职场文书
报名委托书
2015/01/29 职场文书
代理词怎么写
2015/05/25 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS