Я хочу, чтобы загрузить html2canvas в файл изображения, используя скрипт загрузки php. На странице есть скользящая панель с фигурами для пользователя, чтобы выбрать упражнение. Веб-страница с отображаемыми результатами должна быть захвачена и сохранена в файл изображения.Какой скрипт загрузки php я могу использовать для сохранения canvas как png на локальный компьютер?
Ниже приведен сценарий, который я использовал, встроенный в html-код.
function triggerPull() {
if (document.getElementById('name').value != "") {
html2canvas(document.getElementById('body'), {
onrendered: function(canvas) {
var dataURL = canvas.toDataURL('img/png');
canvas.src = dataURL;
document.getElementById('url').value = dataURL;
document.download.submit();
}
});
} else {
alert('Please fill in your name first.');
}
}
Я пробовал сценарий ниже для файла downloader.php. Я получаю только пустой файл с именем downloader.php.png Пожалуйста, помогите!
header('Content-type: image/png');
header('Content-Disposition: attachment; filename="' . $_POST['name'] .'"');
$encoded = $_POST['img'];
$encoded = str_replace(' ', '+', $encoded);
$decoded = base64_decode($encoded);
echo $decoded;
?>
Таким образом, для уточнения, проблема заключается в том, что вы рендеринг PNG изображения с помощью PHP скрипта, но он поврежден? Попробуйте сохранить изображение на диск из своего браузера и посмотреть, есть ли ошибка в двоичном потоке. Например, если у вас есть какие-либо пробелы перед заголовками, ваши команды заголовка вызовут предупреждение. – halfer
У меня есть только небольшое представление об объекте canvas, но из того, что я знаю, содержимое холста, вероятно, не загружается до выполнения какого-либо javascript и, как таковое, может быть недоступно для скачивания на сервере, поскольку javascript не будет через интерпретатор. –
Я попытался сохранить на диск из веб-браузера, но я только получил вариант «Сохранить как веб-страницу». – user2584997