холст изображение на php

0

Я знаю, что этот вопрос уже был здесь, но ни один из решений не работает для меня. Итак, я использую Kinetics.js, и у меня есть приложение для холста, где люди могут рисовать свои изображения (довольно просто). Идея состоит в том, что когда изображение будет готово, пользователь перейдет на следующую страницу, но мне нужно, чтобы его рисунок был сохранен как файл на сервере.

Вот мой код: JavaScript:

$('#someButton').click(function(){
hiddenCanvas.toDataURL({
        callback:function(dataUrl){
            $.ajax({
            type: "POST",
            url: "scripts/imgsave.php",
            data: {image: dataURL}
            });

            }
            });

    window.location = 'scripts/imgsave.php'; 
)};

И PHP:

if ( isset($_POST["image"]) && !empty($_POST["image"]) ) {    
$dataURL = $_POST["image"];  
$parts = explode(',', $dataURL);  
$data = $parts[1];  
$data = base64_decode($data);  
$fp = fopen('../images/test.png', 'w');  
fwrite($fp, $data);  
fclose($fp); 
}

Проблема в том, что, что бы я ни делал, PHP сохраняет пустой файл на моем сервере. Поэтому я думаю, что dataURL отправляется неправильно. Что может быть здесь?

Теги:
canvas
kineticjs

2 ответа

1

Ваш корпус неверен:

Функция обратного вызова создает dataUrl то время как ваш вызов ajax отправляет dataURL

BTW, это хорошая практика, чтобы продлить ваш вызов ajax с помощью обратных вызовов.done и.fail;)

0

Обновленный код:

   $('#someButton').click(function(){
       hiddenCanvas.toDataURL({
           callback:function(dataUrl){
       $.ajax({
               type: "POST",
               url: "scripts/imgsave.php",
               data: {image: dataUrl}
             });

            }
           });

    window.location = 'scripts/imgsave.php'; 
)};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню