Доброе время суток!
Мне нужно сделать скрин части страницы и загрузить его на сервер без перезагрузки страницы.
Я нашел библиотеку html2canvas.js. Оно решат мой вопрос, делая base64 строку и передавая ее в php:
$(document).ready(function () {
$('#btnCapture').on("click", function () {
captureAndUpload();
});
function captureAndUpload() {
$('body').html2canvas({
onrendered: function (canvas) {
var i = canvas.toDataURL("image/png");
$.ajax({
url: "http://artultra/save.php?img=" + i ,
type:"post",
async: false,
proccessData: false,
success: function(response){
alert('ok')
},
error:function(xhr, ajaxOptions, thrownError){
alert(xhr.responseText);
}
});
}
});
}
});
$data = $_REQUEST['img'];
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('image.png', $data);
При отправке картинки формируется очень длинный url (более 2000 символов). И выливает про это ошибка 414 (Request-URI Too Large).
Как можно можно решить этот вопрос нет откручивая гайки apache? Есть какая альтернатива?