Как уже говорилось, я не получаю данных через мой $ _POST. Я пытаюсь передать несколько dataURL холст на сервер для хранения в виде изображений. Данные существуют на клиенте, но никогда не попадают на сервер. Он сохраняет кучу пустых .PNG, которые показывают мне, что код выполняется, только никаких данных там.
Вот соответствующая информация из моего файла JavaScript:
function saveImages(){
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "urlForPHP.php",
data: $('#form1').serialize(),
success: function (result) {
console.log("Success");
}
});
}
А вот и мой PHP-файл (только для одного изображения я удалил цикл для хранения нескольких изображений для удобства чтения)
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);
$finalDest = "path/to/save/";
if (!is_dir($finalDest)) {
// dir doesn't exist, make it
mkdir($finalDest, 0777, true);
}
//save data
$file = base64_decode($_POST["image"]);
$success = file_put_contents($finalDest . $x . ".png", $file);
print $success ? $file : 'Unable to save the file.';
Заранее спасибо, извините, если это было решено ранее, но я довольно много прочитал об этом и попробовал решения для подобных ответов, и пока ничего не помогло.
РЕДАКТИРОВАТЬ
Добавил HTML-код, забыл включить мою форму!
<form method="post" accept-charset="utf-8" name="form1">
<input name="boxTypeID" id="boxTypeID" type="hidden"/>
<input name="image" id="image" type="hidden"/>
<input type="button" name="send" onclick="saveImages()"/>
</form>
Задача ещё не решена.
Других решений пока нет …