html5 — темное изображение получается при сохранении png через переполнение стека

Я пытаюсь сохранить захваченное изображение из HTML5 / Canvas с помощью мобильного телефона. Я использую PHP (symfony2).
Я следовал инструкциям из этого поста (Как сохранить PNG-изображение на стороне сервера из источника данных base64) но я получаю темное пустое изображение вместо того, что я сделал.

Вот мой почтовый индекс JavaScript:

var dataUrl = canvas.toDataURL();
$.ajax({
type: "POST",
url: "{{ path("personne_photo_capture",{"id":entity.personne.id}) }}",
data: {
imgBase64: dataUrl
}
}).done(function (msg) {
$('#msg').html(msg);

}).fail(function (xhr, textStatus, errorThrown) {
$('#msg').html(xhr.responseText);
});

И код сохранения PHP:

$rawData = $_POST['imgBase64'];
if (isset($rawData)) {
$filteredData = explode('base64,', $rawData);
$data = base64_decode($filteredData[1]);
$filename = "profil.png";
file_put_contents('picts/small/' . $filename, $data);
}

2

Решение

Прежде всего, не забудьте указать тип данных на стороне клиента как

 dataType: 'text',

На стороне сервера замените ваши первые два утверждения на:

$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));

Для дальнейших указателей сделайте цикл по ранее заданному вопросу

Как сохранить PNG-изображение на стороне сервера, из строки данных base64

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]