Загрузить изображение на веб-сервер с Android - PullRequest
0 голосов
/ 10 октября 2018

Я занимаюсь разработкой приложения для Android, которое позволяет пользователю загружать изображения со своего Android на сервер 000webhost. По ссылке по этой ссылке мне удалось успешно отправить изображение на веб-сервер (файлmanager?).

Однако я хотел бы вместо этого отправить изображение в базу данных сервера, но у меня возникла проблема с вставкой изображения в базу данных, ниже приведен код PHP, который я использую:

<?php
include 'connection.php';

$con = mysqli_connect($hostname_localhost, $username_localhost, $password_localhost, $database_localhost);

if (mysqli_connect_error()){
    echo 'Error: Connection failed.';
    exit();
}

// Get image string posted from Android App
$base=$_REQUEST['image'];

// Get file name posted from Android App
$filename = $_REQUEST['filename'];

// Decode Image
$binary=base64_decode($base);
header('Content-Type: bitmap; charset=utf-8');

$sql = "INSERT INTO images (bitmap, name) VALUES ('$binary', '$filename')"; 
//mysqli_query($con, $sql)

if ($con->query($sql) === TRUE) {
    echo 'Success';
} else {
  //  Images will be saved under 'upload' folder
    $file = fopen('upload/'.$filename, 'wb');

//  Create File
    fwrite($file, $binary);
    fclose($file);
    echo 'Image upload complete, Please check your php file directory';
}
mysqli_close($con);
?>

Моя база данных с именами изображений имеет 3 столбца:

id INT(100) AUTO_INCREMENT PRIMARY KEY
bitmap TEXT
name VARCHAR(100)

Я пытался передать только имя файла в базу данных ранее, и это сработало, поэтому я подозреваюневерный тип данных для растрового изображения.

Или я должен вместо того, чтобы передавать изображение в базу данных, вместо этого сохранять путь к изображению на веб-сервере?

РЕДАКТИРОВАТЬ: я избавился от оператора if else и сохранил только имя файла в базе данных, изображение сохраняется на сервере.Для поиска я определил путь к папке, в которой хранятся изображения, и использовал readfile (), чтобы отправить изображение обратно в Android, используя HTTPUrlConnection из здесь .

1 Ответ

0 голосов
/ 10 октября 2018

вы можете сохранить файлы на сервере и сохранить имя файла в БД, является предпочтительным решением.Также есть лимит загрузки для каждого сервера.Вы можете увеличить, отредактировав конфигурацию сервера или используя php ini_set.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...