Я использую jQuery Signare Pad, найденный здесь, с исходным кодом и демонстрацией:
http://www.jqueryscript.net/mobile/Simpe-Mobile-Signature-Pad-with-jQuery-Html5-Canvas.html
Прямо сейчас все, что он делает, это показывает изображение вашей подписи, когда вы нажимаете «Готово». Так что теперь с изображением на странице, как я могу сделать это, когда я отправляю свою форму.
Я отправляю свою форму в PDF-конвертер под названием mPDF, используя измененную версию этого: http://mpdf1.com/manual/index.php?tid=373
Теперь мне бы хотелось, чтобы из этого изображения на странице оно было изображением в PDF, так как при нажатии кнопки «Отправить» он не знает, чтобы перетащить это изображение.
Я не самый опытный в PHP, поскольку я учусь по ходу дела, любая помощь будет принята с благодарностью.
Обновленный код предоставлен Thanasis Grammatopoulos
function fun_submit() {
if(isSign) {
var canvas = $("#canvas").get(0);
var imgData = canvas.toDataURL();
//Here the code change, do not display image, sent it to the server
$.ajax({
type: "POST",
url: "script.php",
data: {
imgBase64: imgData
}
}).done(function(o){
alert('Submited.');
});
closePopUp();
} else {
alert('Please sign');
}
}
PHP:
<?php
define('UPLOAD_DIR', 'up/');
$img = $_POST['imgData'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
?>
По-прежнему предоставляет на сервере только файл размером 0 КБ .png, в котором ничего нет.
Куда мне идти отсюда?
Вам просто нужно отправить изображение на сервер.
Измените свой код на:
function fun_submit() {
if(isSign) {
var canvas = $("#canvas").get(0);
var imgData = canvas.toDataURL();
//Here the code change, do not display image, sent it to the server
$.ajax({
type: "POST",
url: "script.php",
data: {
imgBase64: imgData
}
}).done(function(o){
alert('Submited.');
});
closePopUp();
} else {
alert('Please sign');
}
}
Больше информации здесь: Как сохранить холст HTML5 как изображение на сервере
Других решений пока нет …