.ajax POST图像数据URL无法正常工作

时间:2013-12-20 22:48:14

标签: javascript php jquery ajax canvas

我将画布转换为数据网址,我需要将其保存在本地服务器中。出于某种原因,我不能让这(简单)的事情发挥作用。它不会在“natalisations”文件夹中写入任何文件。该文件夹作为写权限,javascript似乎做得很好,没有错误。 Php不会给我任何错误,只是不写实际文件。

的Javascript

function postData(data) {
    alert(data);
    $.ajax({
        type: "POST",
        url: "uploadaux.php",
        data: {image: data}
    }).done(function( respond ) {
        alert(respond);
    });

警报(数据)的输出为"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAg(...)"

这是uploadaux.php文件:

if ( isset($_POST["image"]) && !empty($_POST["image"]) ) {    

    $dataURL = $_POST["image"];  

    $parts = explode(',', $dataURL);  
    $data = $parts[1];  

    $data = base64_decode($data);  

    $fp = fopen('natalisations/image.jpg', 'w');  
    fwrite($fp, $data);  
    fclose($fp); 
}

我已经调试了很多年......而且没有找到解决方案的迹象。提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果你的意思是你的javascript没有向你返回任何东西,那是因为你的PHP中没有返回数据,试试这个,它也有一些调试。

if(isset($_POST['image']) && !empty($_POST['image'])) {    

    $dataURL = $_POST['image'];  

    $parts = explode(',', $dataURL); 
    $data = base64_decode($parts[1]);

    if(is_writable('natalisations/')) {    
        $success = file_put_contents('natalisations/image.jpg', $data);
        echo ($success ? 'success' : 'unable to save file');
    } else {
        echo 'directory not writable';
    }
} else {
    echo 'no image';
}