Как сохранить PNG-изображение на стороне сервера, из базы данных base64 javascript

У меня есть этот код, либо ajax не передает данные правильно, либо мой php не работает должным образом. Я знаю, что canvass сохраняет данные png, которые он записывает на страницу. Есть ли способ просто преобразовать его в файл и сохранить его из javascript?

START JAVASCRIPT: ——————-

<- получить элемент canvass и преобразовать в данные png ->

var canvas = document.getElementById("textCanvas"); var img = canvas.toDataURL("image/png"); 

<- END элемент canvass и преобразование в данные png ->

<- Отправить в файл php ->

 var onmg = encodeURIComponent(img); var xhr = new XMLHttpRequest(); var body = "img=" + onmg; xhr.open('POST', "convertit.php",true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Length", body.length); xhr.setRequestHeader("Connection", "close"); xhr.send(body); xhr.onreadystatechange = function () { if (xhr.status == 200 && xhr.readyState == 4) { document.getElementById("div").innerHTML = xhr.responseText; } else { document.getElementById("div").innerHTML = 'loading'; } } 

<- END отправить в php-файл ->

END JAVASCRIPT: ——————-

START PHP: ——————-

 $img = $_POST['img']; $img = str_replace('data:image/png;base64,', '', $img); $img = str_replace(' ', '+', $img); $data = base64_decode($img); file_put_contents('/uploads/file.png', $data); 

END PHP: ——————-

изменил php на ——–>

 define('UPLOAD_DIR', 'images/'); $img = $_POST['img']; $img = str_replace('data:image/png;base64,', '', $img); $img = str_replace(' ', '+', $img); $data = base64_decode($img); $file = UPLOAD_DIR . uniqid() . 'txtimg.png'; $success = file_put_contents($file, $data); print $success ? $file : 'Unable to save the file.'; 

который я получил от —–> http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html

-человеки работают потрясающе 🙂