我将画布转换为数据网址,我需要将其保存在本地服务器中。出于某种原因,我不能让这(简单)的事情发挥作用。它不会在“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);
}
我已经调试了很多年......而且没有找到解决方案的迹象。提前谢谢!
答案 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';
}