Я пытаюсь загрузить изображение из моего приложения для Android в скрипт php на моем сервере.В моем сценарии я пытаюсь декодировать изображение (используя base64_decode), а затем использовать file_put_contents (), чтобы сохранить изображение в виде файла в моем каталоге.Моя проблема в том, что файл «кажется» пустым, когда у меня есть .jpg в конце имени файла.Когда я удалил это, чтобы увидеть, что было добавлено для кодировки изображения, я увидел очень длинную строку символов (65214 байт, которые были записаны в файл).Когда я снова запускаю код, только на этот раз, загружая $ _POST ['sent_image'] без декодирования, я получаю точно такую же строку текста.
Я не уверен, что делаю неправильно ...Конечная цель - сохранить изображение на сервере, чтобы его можно было просматривать в Интернете, а также получить его и вернуться к другой активности в моем приложении для Android.
Все предложения приветствуются!
ПРИМЕЧАНИЕ. Я также пробовал imagecreatefromstring (), но при этом записывается 0 байт.
Мой код: PHP, который получает закодированное изображение Android и пытается сохранить в каталог сервера:
<?php
include('inc.php');
if ((isset($_POST['searchinput'])) && (isset($_POST['newUnitStatus'])) && (isset($_POST['generalCause'])) && (isset($_POST['newUnitStatusComment'])) && (isset($_POST['newUnitStatusPhoto'])) && (isset($_POST['lexauser'])) && (isset($_POST['password']))) {
$sgref = "";
$searchinput = $_POST['searchinput'];
$newUnitStatus = $_POST['newUnitStatus'];
$generalCause = $_POST['generalCause'];
$newUnitStatusComment = $_POST['newUnitStatusComment'];
$lexauser = $_POST['lexauser'];
$pass = $_POST['password'];
if ((strpos($searchinput, "/") !== false)) {
$barcodesplit = preg_split('/\D/im', $searchinput, 4);
$sgref = $barcodesplit[0];
$lineitem = $barcodesplit[1];
$unitnumber = $barcodesplit[2];
$totalunits = $barcodesplit[3];
$unitname = $sgref."-".$lineitem."-".$unitnumber."_of_".$totalunits;
$photo = $_POST['newUnitStatusPhoto'];
$decodedPhoto = str_replace('data:image/jpg;base64,', '', $photo);
$decodedPhoto = str_replace(' ', '+', $decodedPhoto);
$newUnitStatusPhoto = base64_decode($decodedPhoto);
//$newUnitStatusPhoto = imagecreatefromstring($decodedPhoto);
$fileName = "".$unitname."_rej";
$target = '../LEXA/modules/bms/uploads/';
$newFile = $target.$fileName;
$docType = "Reject";
$success = file_put_contents($newFile, $newUnitStatusPhoto);
if($success === false) {
$response['message'] = "Couldn not write file.";
echo json_encode($response);
} else {
$response['message'] = "Wrote $success bytes. ";
echo json_encode($response);
}
} else {
$sgref = $searchinput;
$response['message'] = "I'm sorry, but you must enter a unit's uniqueid value to add a unit exception. Please view the siblings for this SG and pick the unit you need. Then you can add the new status.";
echo json_encode($response);
}
} else {
$response['message'] = "Your search value did not get sent. Please try again.";
echo json_encode($response);
}//End logic for post values.
?>
Спасибо!