2016-11-07 6 views
0

Я работаю над приложением android, где я снимаю фотографию с камеры и отправляю ее на сервер. Изображение отправляется из приложения в виде кодированной строки в формате base64. Я могу легко сохранить фотографию на локальном сервере, но я не могу сохранить ее в базе данных. Зачем?Отправить изображение в базу данных SQL

вот мой PHP код:

<?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); 
} 
} 
?> 

в $ encoded_string является base64 изображения, а $ decoded_string правильно изображение. Что может быть причиной того, что когда я отправляю его в базу данных, столбец изображения равен нулю? Может ли это быть туман между blob-типом столбца «image» и .jpg тип фотографии, отправленной?

+0

Учитывая инъекции SQL уязвимость, вы могли бы выполнение почти все здесь. Каков фактический запрос SQL, который терпит неудачу? Каким образом это не удается? (Примечание: вы не проверяете наличие ошибок из базы данных.) – David

+0

Есть способ вставить изображение в базу данных. Посмотрите на longblobs – Blueblazer172

+0

Зачем вам сохранять его в базе данных? Просто сохраните путь к файлу в базе данных. – Styphon

ответ

0

отправить декодированного base64 строку в столбец BLOB типа данных в таблице SQL

Смежные вопросы