xz ayt xz ayt - 9 months ago 50
PHP Question

Send a image to the SQL database

I am working on an android application where I take a photo from the camera and send it to the server. The image is sent from the app as an encoded string in the base64 format. I can easily save the photo on the local server, but I cannot save it in the database. Why?

here is my php code:

<?php
header('Content-type : bitmap; charset=utf-8');

if(isset($_POST["encoded_string"])){

$encoded_string = $_POST["encoded_string"];
$image_name = $_POST["image_name"];
$detail1 = $_POST["detail1"];

$decoded_string = base64_decode($encoded_string);

$path = 'images/'.$image_name;

$file = fopen($path, 'wb');

$is_written = fwrite($file, $decoded_string);
fclose($file);

if($is_written > 0) {

$connection = mysqli_connect('localhost', 'root', 'pass','image-test');
$query = "INSERT INTO photos(name,path,detail1,image) values ('$image_name','$path', '$detail1', '$decoded_string');";

$result = mysqli_query($connection, $query) ;

if($result){
echo "success";
}else{
echo "failed";
}

mysqli_close($connection);
}
}
?>


The $encoded_string is the base64 of the image, and the $decoded_string is properly the image. What may be the cause that when I send it to the database, the image column is null? May it be a mistyping between blob type of the 'image' column and .jpg type of the photo sent?

Answer Source

send the decoded base64 string to the BLOB datatype column in the SQL table