Uploading image generated from webcam to mysql database with idle php

Trying to insert the image generated from the user's webcam into the mysql database using php, but this will not work. I am using webcam.js and everything is working fine. When the user takes a snapshot, the image is saved on the server, however the mysql insert does not perform the insert task. Any idea why it is not working?

Both codes are shown below:

cam.php:

session_start(); include_once 'dbconnect.php';//connection to db if(!isset($_SESSION['user'])){//ensures that it the true user header("Location: index.php"); } //display current time //$arrival_time= date('Ymd Hi-s'); //echo "$arrival_time"; if (isset($_POST['send'])) { $getname= mysql_real_escape_string($_POST['last_name']); $idvalue= $_SESSION['myvalue']; $update=mysql_query("UPDATE `employees`.`webcam_clockin` SET `last_name`='$getname' WHERE image_id='$idvalue'"); if($update) { //run a check to verify last_name $sql=mysql_query("SELECT users.*, employees.* FROM users NATURAL JOIN employees WHERE employees.last_name='$getname'"); $result=mysql_fetch_array($sql); if($result){ $_SESSION['user'] = $result['user_id']; header("Location: home.php"); } else { ?> <script> alert('Wrong Last Nane'); </script> <?php } } else { echo "Error Not done"; } } </style> </head> <body> <div class="container"> <div align="center"> <script> webcam.set_api_url( 'camsave.php' ); webcam.set_quality( 100 ); // JPEG quality (1 - 100) webcam.set_shutter_sound( true ); // play shutter click sound </script> <script> document.write(webcam.get_html(640, 480)); webcam.set_hook('onComplete', 'my_callback'); function my_callback(msg) { document.getElementById('upload').innerHTML = msg; } function do_upload(){ webcam.snap(); } function my_callback(msg) { // extract URL out of PHP output if (msg.match(/(https\:\/\/\S+)/)) { var image_url = RegExp.$1; // show JPEG image in page document.getElementById('upload_results').innerHTML = '<h1>Upload Successful!</h1>' + '<h3>JPEG URL: ' + image_url + '</h3>'; } else alert("PHP Error: " + msg); } </script> </div> <div> <form class="form-signin" id="myForm"><br> <h3 class="form-signin-heading">Enter Your Name. Take a Nice Picture and Submit</h3> <input type=button class="btn btn-lg btn-primary btn-block" id="snap" onclick="do_upload()" value="Snap"> </form> <form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" class="form-signin" ><br> <label for="last_name" class="sr-only">Enter Last Name</label> <input type="text" name="last_name" id="last_name" class="form-control" placeholder="Last Name" required autofocus> <input type="submit" class="btn btn-lg btn-primary btn-block" name="send" id="send"> </form> </div> </td><td width=50>&nbsp;</td><td valign=top> <div id="upload"></div> </td></tr></table> </div> </body> </html> 

camsave.php:

 session_start(); include_once 'dbconnect.php'; if(!isset($_SESSION['user'])) { header("Location: index.php"); } //get some data about this user $res2=mysql_query("SELECT users.*, employees.* FROM users NATURAL JOIN employees WHERE user_id=".$_SESSION['user']); $userRow=mysql_fetch_array($res2); if ($userRow) { echo "correct!!"; } //Define storage location of original images $folder = "images/"; $filename = date('YmdHi-s') . '.jpg'; $original = $folder.$filename; //Get JPEG snapshot from webcam $input = file_get_contents('php://input'); //Blank images are discarded if(md5($input) == '7d4df9cc423720b7f1f3d672b89362be'){ exit(); } //Retreive the snap and save to original dest. $file= file_put_contents($original, $input); if(!$file){ print "ERROR: Failed to write data to $filename, check permissions\n"; exit(); } else { //Get the size of the image $info = getimagesize($original); list($width,$height) = $info; if($info['mime'] != "image/jpeg"){//ensure we get right file extension unlink($original); exit(); } //Move images to the Original folder rename($original, "images/original/".$filename); $emp_no = $userRow['emp_no'];//employee number $user_id = $_SESSION['user_id'];//user ID $image_id = NULL; $original = "images/original/".$filename;//our image $last_name =$_SESSION['last_name']; $path = "images/thumbnail/".$filename; $sql=mysql_query("INSERT INTO `webcam_clockin` (`image_id`, `user_id`, `images`, `emp_no`, `last_name`) VALUES ('$image_id', '$user_id','$path','$emp_no', '$last_name')"); move_uploaded_file($original, $path); if(move_uploaded_file($filename, $original)){ echo "The file ". $original.$filename. " has been uploaded, and your information has been added to the directory"; echo "Thank You "; echo $userRow['username']; echo".\n"; } else{ echo "Sorry, there was a problem uploading your file."; echo "Error inserting entry data: ".mysql_error(); ?> <script> alert('Error Inserting your details. Please, see your department manager'); </script> <?php } $value=mysql_insert_id(); $_SESSION["myvalue"]=$value; } $url = 'https://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/' . $filename; print "$url\n"; 

Finally, I solved the problem of saving the image in the database. The problem was the wrong data type in phpmyadmin, which should be longblob.

+6
source share
1 answer

I’m too late to answer, but maybe it will help others, I wrote a tutorial about this. You can check it out here . In this tutorial I used HTML5, jQuery, PHP, this tutorial will use the PHP class and save the image in two ways.

  • Local storage
  • Base64

In both cases, it will save the image in the database

0
source

All Articles