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 没有正确发送。这里可能是什么问题?

4

2 回答 2

1

您的大小写不正确:

回调函数dataUrl在您的 ajax 调用发送时创建dataURL

顺便说一句,使用 .done 和 .fail 回调扩展 ajax 调用是一种很好的做法;)

于 2013-09-22T14:20:28.170 回答
0

更新代码:

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

            }
           });

    window.location = 'scripts/imgsave.php'; 
)};
于 2013-09-24T09:24:54.780 回答