3

キャンバスイメージをサーバー内のフォルダーに保存しようとしていますが、検査時にファイルが空になっています。AJAXを使用してエンコードされたデータをphpスクリプトに渡し、phpスクリプトがそれをサーバーに空で保存しています。

これは私が持っているコードです:

JS / AJAX:

function convertCanvasToImage(thecanvas) {
                var ajax = new XMLHttpRequest();
                ajax.open("POST",'testSave.php',false);
                ajax.setRequestHeader('Content-Type', 'application/upload');
                ajax.send(canvasData);
            }

PHP(testSave.php):

    $imageData=$GLOBALS['HTTP_RAW_POST_DATA'];

    $filteredData=substr($imageData, strpos($imageData, ",")+1);

    $unencodedData= base64_decode($filteredData);

    //echo "unencodedData".$unencodedData;

    $fp = fopen( 'test.png', 'wb' );
    fwrite( $fp, $unencodedData);
    fclose( $fp );

事前に助けてくれてありがとう!

4

1 に答える 1

1

<canvas>関数を使用してをデータに変換するための行が関数にありません.toDataURL()

function convertCanvasToImage( thecanvas ) {
    var canvasData = thecanvas.toDataURL( 'image/png' ), //add this
        ajax = new XMLHttpRequest();
    ajax.open( 'POST', 'testSave.php', false );
    ajax.setRequestHeader( 'Content-Type', 'application/upload' );
    ajax.send( canvasData );
};

var thecanvas = document.getElementById( 'canvasId' );
convertCanvasToImage( thecanvas );
于 2013-03-06T22:38:53.310 に答える