Imprimir amc PHP i CUPS

Provat amb Canon i-sensys LBP212dw amb el driver Canon LBP211/212 UFR II i configurada a CUPS amb el nom provalpd i URL lpd://IP_IMPRESSORA/lp

<!DOCTYPE html>
<html>
<body style="font-family: Arial, Verdana;line-height:30px;">

<form method="post" enctype="multipart/form-data">
        <br>Fitxer (només JPG, PNG i PDF): <input type="file" name="fileToUpload" id="fileToUpload">
        <br>Còpies: <select name="ncopies">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
        </select>
        <br>Impressora: <select name="impressora">
                <option value="provalpd">Sistemes</option>
                <option value="provalpd">Sistemes</option>
                <option value="provalpd">Sistemes</option>
        </select>
        <input type="hidden" name="enviat" value="si">
        <br>
        <input type="submit" value="IMPRIMIR" name="submit">
</form>

<?php

/****DEBUG**** = veurem missatges de debug, 0 = no els veurem */
/****DEBUG****/ $debug=1;

/****DEBUG****/ if ($debug==1) { echo "<br>---- debug inici ----<br>"; }

if ($_POST['enviat']=="si") {
        $ncopies=$_POST['ncopies'];
        $impressora=$_POST['impressora'];
        /****DEBUG****/ if ($debug==1) { echo "<br>---- debug 1 ----<br>"; }
        $target_dir = "uploads/";
        $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
        $uploadOk = 1;
        /****DEBUG****/ if ($debug==1) { echo "<br>---- debug 2 ----<br>"; }
        $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
        if(isset($_POST["submit"])) {
                /****DEBUG****/ if ($debug==1) { echo "<br>---- debug 3 ----<br>"; }
                $mime=mime_content_type($_FILES["fileToUpload"]["tmp_name"]);
                if ( ($mime=="application/pdf") || ($mime=="text/plain") || ($mime=="image/png") || ($mime=="image/jpeg") ) {
                        echo "Fitxer correcte, seguim.";
                        $uploadOk = 1;
                } else {
                        echo "Fitxer no permès.";
                        $uploadOk = 0;
                }
                /****DEBUG****/ if ($debug==1) { echo "<br>---- debug 4 ----<br>"; }
        }
        /****DEBUG****/ if ($debug==1) { echo "<br>---- debug 5 ----<br>"; }

        if ($uploadOk == 0) {
                echo "No es pot pujar el fitxer.";
        } else {
                if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
                        echo "El fitxer ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " s'ha guardat i s'enviarà a imprimir.";
                        shell_exec('lp -n '.$ncopies.' -d '.$impressora.' "/var/www/html/imprimir/uploads/'. htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])).'"');

                } else {
                        echo "Error guardant el fitxer.";
                }
        }
}

/****DEBUG****/ if ($debug==1) { echo "<br>---- debug fi ----<br>"; }
?>

</body>
</html>
2022-03-23T09:21:35+01:0023 03 2022|cups, php|