javascript — canvas..toDataURL и загрузите его

Я работаю над преобразованием холста в изображение и загрузкой его на сервер, когда пользователь отправит форму.
Изображение размещено правильно, но на сервере оно выглядит пустым.

Вот мой код, (использую телефонный разрыв)
.drawImage ()находится в main.js .. но canvas..toDataURLнаходится в скрипте в HTML

 <script>

function insert()
{
var img = document.getElementById("myCanvas")[0].toDataURL("image/jpeg");
$.ajax({
type: "POST",

url: "http://*******************/create.php?title="+      ($("#myTitle").val())+"&description="+$("#myDesc").val()+"&price="+$("#myPrice").val(),

data: {img: img},
success: function(data)
{
alert("inserted");
}});

</script>

PHP

$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';

Любая идея ?

РЕДАКТИРОВАТЬ !!!

Наконец-то это ЗАГРУЗКА !!!

Спасибо Джеку Франзену за его предложение.
Я изменил код PHP на

$img = $_POST['img'];
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = uniqid() . '.jpg';
$success = file_put_contents($file, $data);

и это работает как шарм! 🙂

2

Решение

Я знаю вашу проблему! Ваш код PHP ищет «PNG», но ваш JavaScript генерирует «JPG»

Просто переключитесь на DataRL («изображение / JPEG») ToDataURL ()

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector