我做了一个简单的应用程序,用户如何编辑画布,并通过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图像文件。
答案 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文件,我不知道为什么......