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中常用编辑器推荐
Jan 02 PHP
php download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 PHP
PHP数据类型之整数类型、浮点数的介绍
Apr 28 PHP
解析php多线程下载远程多个文件
Jun 25 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
php中explode的负数limit用法分析
Feb 27 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
实例讲解PHP表单处理
Feb 15 PHP
php和nginx交互实例讲解
Sep 24 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
IIS下PHP的三种配置方式对比
2014/11/20 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
Smarty变量用法详解
2016/05/11 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
Python程序语言快速上手教程
2012/07/18 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
python打印异常信息的两种实现方式
2019/12/24 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
Python实现扫码工具的示例代码
2020/10/09 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
人力资源管理专业自荐信
2014/06/24 职场文书
优秀高中学生评语
2014/12/30 职场文书
诚信考试主题班会
2015/08/17 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL