HTML5 APP应用实现图片上传及拍照上传功能

HTMl5 APP手机端代码:

 

<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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值