Below two scripts, JS creates a JPG image from the DIV content and sends it with Ajax to a PHP script that changes DPI and then returns to Ajax, where it is created as a clicked link that allows you to download this JPG. Can I skip back to Ajax and trigger a file download directly from a PHP script?
$ajax_dataUrl = isset($_POST['ajax_dataUrl']) ? $_POST['ajax_dataUrl'] : '';
$ajax_pdf_zoom_number = isset($_POST['ajax_pdf_zoom_number']) ? $_POST['ajax_pdf_zoom_number'] : '';
$path = $ajax_dataUrl;
$del_string = 'data:image/jpeg;base64,';
$path = str_replace($del_string, "", $path);
$path = base64_decode($path);
$image = substr_replace($path, pack("cnn", 1, 180, 180), 13, 5);
$enc = base64_encode($image);
$callback = $del_string.$enc;
/*
$f = fopen('Zoom_numer'.$ajax_pdf_zoom_number.'.jpg', 'w');
fwrite($f, $image);
fclose($f);
*/
echo $callback;
var pdf = $('#pdf_area > .ol-viewport')[0];
domtoimage.toJpeg(pdf,
{
quality : 1
}
)
.then(function (dataUrl) {
// alert(dataUrl);
//########################################################
$.ajax({ // ajax
type : "POST",
url : "dec2.php",
data : {
ajax_dataUrl : dataUrl,
ajax_pdf_zoom_number : pdf_zoom_number
}
,
context: this,
success : function(callback) {
var link = document.createElement('a');
link.download = 'Zoom_numer_' + pdf_zoom_number +'.jpg';
link.href = callback;
link.click();
} //success
}); //ajax