У меня возникают проблемы с отправкой изображения в виде строки между Javascript и PHP. Пока у меня есть:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cIL
как строка, которая передается от JS к PHP, и это проверяется по мере того, как изображение будет загружаться в хром «как есть».
Я использую PHP для
$im = imagecreatefromstring($data);
Это, однако, просто ошибки. Если я удалю данные: image / png; бит base64, он работает, но когда дело доходит до больших файлов, это просто не работает.
Мне просто интересно, что я мог пропустить здесь.
Вам нужно удалить заголовок, который выплевывается из canvas.toDataURL («image / png; base64»);
вы можете сделать это с помощью javascript:
var imgData= canvas.toDataURL("image/png;base64"); var postData = {drawing:imgData.substr(22)};
или с php
substr($_POST['drawing'],22);
У меня такая же ошибка, но если я попробую:
echo '<img src="'.$data.'"/>';
Затем изображение отображается …
В оболочку это не работает:
echo 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cI' | base64 -d - >file.png
Я получил base64: недопустимая запись .
Если я добавлю «=»:
echo 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cIL=' | base64 -d - >file.png
Тогда это хорошо. Но также плохо с imagecreatefromstring ().
Не могли бы вы рассказать нам, как вы получили кодированный base64 контент в javascript?
См. Этот комментарий: http://www.php.net/manual/en/function.base64-decode.php#102113
Изменить : этот код работает …
<?php $data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASAQMAAAByySynAAAABlBMVEUAAAD///+l2Z/dAAAAP0lEQVQImWNgPm9gwAAmbM4bH4AQzAdAYiDC/rzxByTi/+f/cIL'; $data = base64_decode($data); header('Content-Type: image/png'); echo $data; ?>