Я использую следующий код AJAX / JQuery для сохранения HTML5 холст в виде PNG:
var canvas = document.getElementById("canvas");
var data = canvas.toDataURL("image/png");
$.ajax({
url: "saveAsImage.php",
data:{data:data},
type:"POST",
success:function(r){
$("#result").html(r);
}
});
Код PHP создает файл .png из опубликованных данных со следующим кодом php:
<?php
if(isset($_POST['data'])){
$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
$fileName = date('Ymdhisa').'.png';
file_put_contents("img/".$fileName, $fileData);
echo('<hr>Created Image is: <br><img src="img/'.$fileName.'">');
}
?>
Теперь проблема заключается в том, что мой веб-сервер не поддерживает функции base64_encode () и base64_decode (), поэтому я использую следующий метод вместо метода base64_decode () и закомментировал метод base64_decode ()
//$fileData = base64_decode($img);
$fileData = rawurldecode($img);
Есть ли способ, с помощью которого я могу это сделать?
Задача ещё не решена.
Других решений пока нет …