为什么PHP没有成功通过AJAX创建PNG图像?

时间:2014-07-06 08:37:57

标签: php ajax

我做了一个简单的应用程序,用户如何编辑画布,并通过ajax与PHP发送Canvas Base 64数据,在此文件夹中创建PNG图像,问题是它不会创建PNG图像。

应用网站链接;使用Chrome,按F12进行检查,检查" Network"单击"上传"选项卡与XHR类别按钮,它将出现" canvasupload.php" http://www.powerupware.com/canva/

这个PHP代码:

<?php

    $name = $_POST['name']; //optional variable

    define ('UPLOAD_DIR', 'userCanvas/'); //folder to save image

    $img =  $_POST['CanvasPic']; //get from canvas base64 by user who posts via AJAX

    //base 64 string to convert image file properly
    $img = str_replace('data:image/png;base64,' '', $img);
    $img = str_replace(' ', '+', $img);


    //create PNG file
    $data = base64_decode($img);
    $file = UPLOAD_DIR . uniqid() . '.png'; //outputs as image file in server with unique ID.

    $success = file_put_contents ($file, $data);

    print $success ? $file : 'Could not save the file!';

?>

上传这个画布后,我用POST方法得到200 OK,当我进入FTP时,打开userCanvas文件夹,发现没有新的png图像文件。

1 个答案:

答案 0 :(得分:2)

我已经想通了,由于未知原因,我创建了另一个代码:

<?php

$img = $_POST['CanvasPic'];
define('UPLOAD_DIR', 'userCanvas/');


$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);

$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';

$success = file_put_contents($file, $data);

print $success ? $file : 'Could not save the file!';

?>

有用,我可以在这个文件夹中看到新的PNG文件,我不知道为什么......