Неустранимая ошибка чтения файла изображения PNG: IDAT: ошибка CRC - PullRequest
0 голосов
/ 27 апреля 2018

У меня проблема с сохранением изображения в формате png с помощью php. Я последовал предложению @ drew010 , как описано здесь: https://stackoverflow.com/a/11511605/9117408 Но когда я пытаюсь открыть сохраненное изображение, в заголовке моего вопроса появляется ошибка

Вот код JS для отправки изображения на php:

canvas.className = "photo-canvas";
canvas.width = camera.videoWidth;
canvas.height = camera.videoHeight;
canvas.getContext('2d').drawImage(camera, 0, 0);
if (hat.checked)
{
     console.log(canvas.toDataURL());
     var xhttp = new XMLHttpRequest();
     xhttp.open("POST","backend/functions.php", true);
     xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xhttp.send("photo="+canvas.toDataURL());
     ...
}

А вот код php, который обрабатывает и сохраняет изображение:

$data = $_POST['photo'];
list($type, $data) = explode(';', $data);
list(, $data)      = explode(',', $data);
$data = base64_decode($data);
file_put_contents("$_SERVER[DOCUMENT_ROOT]/userphoto/".getdate()[0]."_".$_SESSION['user']['iduser'].".png", $data);

The error i get when i try to open the image from my computer

Ошибка, которую я получаю при попытке открыть изображение с моего компьютера

Я попытался открыть изображение base64 непосредственно в браузере и смог успешно увидеть изображение. Так у меня проблемы с библиотекой или я делаю что-то не так? Спасибо

...