canvas.toDataURL()从实时视频源捕获然后保存到文件服务器,并在DB中引用

时间:2015-08-04 17:41:03

标签: javascript php mysql html5 canvas

我正在开发一个数据库,我们需要拥有用户表单数据和从网络摄像头捕获的图像,然后将用户数据发送到数据库,并在文件服务器上添加指向照片的链接。我使用此处找到的代码http://davidwalsh.name/demo/camera.php(添加了dataurl和base64编码)将图像捕获到画布。在发布之前,我已经搜索过去2周(未知单独的代码更改和转换),并且已经阅读了一些人,说明有关Canvas.toDataURL()的类似问题,但它只是不起作用我

我收到一个上传为png的文件,但该文件的大小为0.我没有其他编码形式的经验(ruby / api / ajax / python),所以我无法使用这些编码。如果那些是强制性的,那么我将不得不找到另一种方法(可能通过Flash的动作脚本)来使这项工作或放弃这些,直到学习这些脚本。

如果使用PHP和mySQL甚至可以提供任何信息都会有所帮助,所以我不想创建一些不可能的东西。 platofrm / delivery system将是我们内联网上的内部服务器。目前正在运行谷歌浏览器的Windows计算机上的网络主机服务器上进行测试(也在firefox,opera和IE上测试过)提前感谢您花时间阅读。

在我的form.php中

var canvas = document.getElementById('canvas');
if (canvas.getContext) {
    var C = canvas.getContext('2d');
}

$('#canvas').submit()(function(event) {
// feel free to choose your event ;) 

// just for example
// var OFFSET = $(this).offset();
// var x = event.pageX - OFFSET.left;
// var y = event.pageY - OFFSET.top;

// standard data to url
var imgdata = canvas.toDataURL('image/png');
// modify the dataUrl so the browser starts downloading it instead of             just showing it
var newdata = imgdata.replace(/^data:image\/png/,'data:application/octet-    stream');
// give the link the values it needs
       $('a.linkwithnewattr').attr('download','your_pic_name.png').attr('href',newdata);

});

               

在我的addcontent.php

<?php 
include("connectionInfo.php");

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

$name = $_POST['name'];
$phone = $_POST['phone'];
$duedate = $_POST['duedate'];
$employee = $_POST['employee'];
$address = $_POST['address'];
$email = $_POST['email'];
$estimate = $_POST['estimate'];
$dataURL = $_POST["canvas"];


    //input file into images folder
$image = str_replace('data:image/png;base64,', '', $dataURL);
$image = str_replace(' ', '+', $dataURL);
$image = base64_decode($dataURL);
$filename = "$duedate$name.png";
file_put_contents('images/' . $filename, $dataURL);

    // create path for image upload
$path = "images/" . $filename;
move_uploaded_file($_FILES["file"]["tmp_name"],$path);

    //show file location
echo "Stored in: ". $path;

    //store file path in database
if(mysql_query("INSERT INTO JobBags (image) VALUES ('$path')")){
  echo "Successfull!!";} else {
    echo '---fail-sadface---';}

            // put customer info into job bag database
$sql = "INSERT INTO JobBags (name, phone, duedate, employee, address, email, estimate, image) 
VALUES ('$name', '$phone', '$duedate', '$employee', '$address', '$email', '$estimate', '$dataURL')";

    //check if jobbag created correctly
if ($conn->query($sql) === TRUE) {
echo "New record created successfully.";
    } else {
echo "Error: " . $mysqli . "<br>" . $conn->error;
}


// close connection to database
$conn->close();

?>

0 个答案:

没有答案