HTML5 APP应用实现图片上传及拍照上传功能
2015-07-20 11:04
871 查看
HTMl5 APP手机端代码:
PHP服务器端代码(服务器端处理相对简单):
2015-07-20
<video id="myVideo" autoplay="autoplay"></video> <br /> <input type="button" value="拍照" /><br /> 拍照结果: <div id="result"> </div> <script type="text/javascript"> $(document).ready(init); function init() { //为了便于使用这个接口,先做一下兼容性处理 navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; //Google Chrome用webkitGetUserMedia,Firefox用mozGetUserMedia navigator.getUserMedia({video:true}, success, error); //显示影像 //定义button点击后要做什麼 $("input[type='button']").click(function () { shoot(); //执行拍照 }); } function success(stream) { $("#myVideo").attr("src", window.webkitURL.createObjectURL(stream)); $("#myVideo").play(); } function error(error) { alert(error.name || error); } //拍照 function shoot() { var video = $("#myVideo")[0]; var canvas = capture(video); $("#result").empty(); $("#result").append(canvas); //呈现图像(拍照结果) var imgData = canvas.toDataURL("image/jpg"); var base64String = imgData.substr(22); //取得base64字串 //上传,储存图片 $.ajax({ url: "vod/avatar.php", type: "post", data: { data: base64String }, async: true, success: function (htmlVal) { alert("另存图片成功!"); }, error: function (e) { alert(e.responseText); //alert错误信息 } }); } //从video元素抓取图像到canvas function capture(video) { var canvas = document.createElement('canvas'); //建立canvas js DOM元素 canvas.width = video.videoWidth; canvas.height = video.videoHeight; var ctx = canvas.getContext('2d'); ctx.drawImage(video, 0, 0); return canvas; } </script>
PHP服务器端代码(服务器端处理相对简单):
<?php function convert_data($data){ $image=base64_decode(str_replace('data:image/jpeg;base64,','',$data)); save_to_file($image); } function save_to_file($image){ $filename='avatar/'.time(); $filename.='.jpg'; $fp=fopen($filename,'w'); fwrite($fp,$image); fclose($fp); } convert_data($_REQUEST['data']);
2015-07-20
相关文章推荐
- Android学习
- Android异步任务处理框架AsyncTask源码分析
- 解决JSONObject类找不到的问题
- 高仿一元云购IOS应用源码项目
- android开发-------socket实现C/S端相互通信
- Android中的JSON详细总结
- 非常不错的点餐系统应用ios源码完整版
- 【Record】ART:Android RunTime
- Android NDK编程问题
- Android 自定义View (一)
- 仿哔哩哔哩应用客户端Android版源码项目
- 仿哔哩哔哩应用客户端Android版源码项目
- Swift2.0语言教程之函数嵌套调用形式
- Android Studio 修改字体大小
- Android中使用Gson解析JSON数据的两种方法
- 详述Android插件化原理
- Android源码及SDK国内镜像下载
- 【iOS实现一个颜色渐变的弧形进度条】
- android 布局文件 ScrollView 中的 listView item 显示不全解决方案
- Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新