简体   繁体   English

我正在尝试使用简单的网络摄像头捕获上传,上传不起作用?

[英]I'm trying to use a simple webcam capture upload, upload isn't working?

UPDATE: 更新:

This is the entire code, which I pretty much copied and pasted. 这是整个代码,我几乎复制和粘贴。

<!DOCTYPE HTML>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script language="JavaScript" type="text/javascript"></script>

<style>

</style>
</head>
<body>
<script>
Webcam.set({
    width: 320,
    height: 240,
    dest_width: 640,
    dest_height: 480,
    image_format: 'jpeg',
    jpeg_quality: 90,
    force_flash: false
});
</script>
<div id="web_camera" style="width:320px; height:240px;"></div>
<div id="cam_result"></div>
 <script type="text/javascript" src="webcam.js"></script>
  <script language="JavaScript">
   document.addEventListener("DOMContentLoaded", function(event) {
        Webcam.set({
            width: 320,
            height: 240,
            image_format: 'jpeg',
            jpeg_quality: 90
        });
        Webcam.attach( '#web_camera' );
        function take_snapshot() {
            // take snapshot and get image data
            Webcam.snap( function(data_uri) {
                // display results in page
                document.getElementById('cam_results').innerHTML =
                    '<h2>Here is your image:</h2>' +
                    '<img src="'+data_uri+'"/>';
                                Webcam.upload( data_uri, 'upload.php', function(code, text) {
                                            // Upload complete!
                                            // 'code' will be the HTTP response code from the server, e.g. 200
                                            // 'text' will be the raw response content
                                });
            } );
        }
   });
  </script>
<a href="javascript:void(take_snapshot())">Take Snapshot</a>

</body>

I'm using this link 我正在使用此链接

http://mycodingtricks.com/javascript/webcam-api/ http://mycodingtricks.com/javascript/webcam-api/

This one looks a lot better but may be the same thing 这个看起来好多了,但可能是同一件事

http://www.html5rocks.com/en/tutorials/getusermedia/intro/ http://www.html5rocks.com/en/tutorials/getusermedia/intro/

What I'm concerned about is the data_uri, also the url upload 我关心的是data_uri,也是url上传

So the webcam works, shows my face, whatever, but I push this 所以摄像头工作,显示我的脸,无论如何,但我推动它

<a href="javascript:void(take_snapshot())">Take Snapshot</a>

and nothing happens. 没有任何反应。 I see the little grey box at the bottom left saying javascript:void(take_snapshot()) I'm wondering if I'm supposed to put a parameter... 我看到左下方的小灰盒说javascript:void(take_snapshot())我想知道我是否应该放一个参数......

There can be several problems, I am using domain mapping and the folder may be pointed incorrectly or it could be a file permission problem, I did chown with www-data 可能有几个问题,我使用域映射,文件夹可能指向不正确或它可能是文件权限问题,我做了与www数据chown

This is the upload.php as suggested or rather given by the first link 这是建议的upload.php,或者由第一个链接给出

<?php
    // be aware of file / directory permissions on your server
    move_uploaded_file($_FILES['webcam']['tmp_name'], '/tabdater/uploads/webcam'.md5(time()).rand(383,1000).'.jpg');
?>

I'd appreciate any help. 我很感激任何帮助。

This should be a great starting point for you. 这应该是一个很好的起点。 I hope this helps you. 我希望这可以帮助你。

<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Cam Snap</title>
<script type="text/javascript" src="webcam.js"></script>
<script language="JavaScript">
function take_snapshot() {
    Webcam.snap(function(data_uri) {
    document.getElementById('results').innerHTML = '<img id="base64image" src="'+data_uri+'"/><button onclick="SaveSnap();">Save Snap</button>';
});
}
function ShowCam(){
Webcam.set({
width: 320,
height: 240,
image_format: 'jpeg',
jpeg_quality: 100
});
Webcam.attach('#my_camera');
}
function SaveSnap(){
    document.getElementById("loading").innerHTML="Saving, please wait...";
    var file =  document.getElementById("base64image").src;
    var formdata = new FormData();
    formdata.append("base64image", file);
    var ajax = new XMLHttpRequest();
    ajax.addEventListener("load", function(event) { uploadcomplete(event);}, false);
    ajax.open("POST", "upload.php");
    ajax.send(formdata);
}
function uploadcomplete(event){
    document.getElementById("loading").innerHTML="";
    var image_return=event.target.responseText;
    var showup=document.getElementById("uploaded").src=image_return;
}
window.onload= ShowCam;
</script>
<style type="text/css">
.container{display:inline-block;width:320px;}
#Cam{background:rgb(255,255,215);}#Prev{background:rgb(255,255,155);}#Saved{background:rgb(255,255,55);}
</style>
</head>
<body>
<div class="container" id="Cam"><b>Webcam Preview...</b>
    <div id="my_camera"></div><form><input type="button" value="Snap It" onClick="take_snapshot()"></form>
</div>
<div class="container" id="Prev">
    <b>Snap Preview...</b><div id="results"></div>
</div>
<div class="container" id="Saved">
    <b>Saved</b><span id="loading"></span><img id="uploaded" src=""/>
</div>
</body>
</html>

PHP (Must have the uploads directory) - PHP(必须有上传目录) -

<?php
define('UPLOAD_DIR', 'uploads/');
$img = $_POST['base64image'];
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>

Credit to This Blog for the php! 感谢这个博客的PHP!

Its not working because you had included the take_snapshot() function in document.addEventListener("DOMContentLoaded", function(event) { function. 它没有用,因为你在document.addEventListener("DOMContentLoaded", function(event) { function中包含了take_snapshot()函数。

Please follow the tutorial... 请按照教程...

You code should look like: 您的代码应如下所示:

 <!DOCTYPE html> <html> <head> <title>Javascript Webcam Demo - <MyCodingTricks/></title> <link href="http://mycodingtricks.com/demo/style.css" rel="stylesheet"/> </head> <body> <h3>Demonstrates simple 320x240 capture &amp; display</h3> <div id="my_camera"></div> <!-- A button for taking snaps --> <form> <input type=button class="btn btn-success" value="Take Snapshot" onClick="take_snapshot()"> </form> <div id="results" class="well">Your captured image will appear here...</div> <script src="http://mycodingtricks.com/demo/script.js"></script> <!-- First, include the Webcam.js JavaScript Library --> <script type="text/javascript" src="webcam.min.js"></script> <!-- Configure a few settings and attach camera --> <script language="JavaScript"> Webcam.set({ width: 320, height: 240, image_format: 'jpeg', jpeg_quality: 90 }); Webcam.attach( '#my_camera' ); function take_snapshot() { // take snapshot and get image data Webcam.snap( function(data_uri) { // display results in page document.getElementById('results').innerHTML = '<h2>Here is your image:</h2>' + '<img src="'+data_uri+'"/>'; Webcam.upload( data_uri, 'upload.php', function(code, text) { // Upload complete! // 'code' will be the HTTP response code from the server, eg 200 // 'text' will be the raw response content }); } ); } </script> </body> </html> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我正在尝试使用node和ajax上传文件,但是ajax调用不起作用? - I'm trying to upload a file using node and ajax but the ajax call isn't working? 所以我正在尝试使用 Math.cbrt 并且我的代码没有按预期工作 - So I'm trying to use Math.cbrt and my code isn't working as expected Javascript 网络摄像头捕获并使用 PHP 上传到服务器 - Javascript webcam capture and upload to server with PHP 如何从网络摄像头捕获视频并将其上传到服务器? - how to capture video from webcam and upload it to server? 使用multer无法上传图片 - Image upload isn't working using multer 我正在尝试使用 getPart() 将 blob 图像上传到 jsp 动态 Web 应用程序中的 mysql - I’m trying to use getPart() to upload blob image into mysql in jsp dynamic web app 我正在尝试上传图片但不能将状态设置为 reader.result - I'm trying to upload an image but can't setState to be reader.result 为什么这个文件上传拖/放不起作用,我完全复制了 CodePen 代码? - Why isn't this File Upload drag/drop working, I copied CodePen code exactly? Fancybox box 在我将它上传到 webhost 但在 localhost 上工作后不工作 - Fancybox box isn't working after I upload it to webhost but works on localhost 我正在尝试在响应中使用onClick侦听器呈现输入表单,但是它不起作用 - I'm trying to render a input form with an onClick listener in react, but it isn't working
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM