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

大文字と小文字が正しくありません:

dataUrlajax呼び出しが送信されている間にコールバック関数が作成されます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 に答える