HomeController.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Controllers;
  3. use App\Models\HomeModel;
  4. use App\Controller;
  5. use App\Model;
  6. class HomeController extends Controller {
  7. public function __construct($twig)
  8. {
  9. $this->twig = $twig;
  10. $this->model = new HomeModel;
  11. }
  12. public function index(){
  13. echo $this->twig->render('home.twig', array(
  14. "messages" => $this->model->getMessages(),
  15. ));
  16. }
  17. public function upload(){
  18. $name = md5(random_int(1, 10000) . microtime()).md5(random_int(1, 10000) . microtime());
  19. $address = "/tmp/".$name."/".str_replace(" ", " ", basename( $_FILES['file']['name']));
  20. $address = substr_replace($address , 'pdf', strrpos($address , '.') +1);
  21. $targetfolder = __DIR__."/../../public/tmp/".$name ."/";
  22. exec("mkdir ".$targetfolder);
  23. $targetfolder = addslashes($targetfolder);
  24. $targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;
  25. if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder)){
  26. $targetfolder = str_replace(" ", "\ ", $targetfolder);
  27. $tf = $targetfolder;
  28. $cmd = "sudo /usr/bin/unoconv --output=".$targetfolder." -f pdf ".$targetfolder;
  29. $file_parts = pathinfo($tf);
  30. if($file_parts["extension"] == "pdf")
  31. {
  32. exec("ls");
  33. }
  34. else{
  35. exec($cmd);
  36. }
  37. global $config;
  38. echo $this->twig->render('upload.twig', array(
  39. "messages" => $this->model->getMessages(),
  40. "link" => $address,
  41. "printers" => $config["printers"],
  42. "path" => escapeshellcmd($address)
  43. ));
  44. }
  45. else {
  46. echo "Problem uploading file";
  47. }
  48. }
  49. public function print(){
  50. $printer = $_POST["printer"];
  51. $copies = $_POST["copies"];
  52. $path = $_POST["path"];
  53. $printer=escapeshellcmd($printer);
  54. $copies=escapeshellcmd($copies);
  55. $path=str_replace(" ", "\ ", escapeshellcmd($path));
  56. $path = __DIR__."/../../public".$path;
  57. $cmd = "lp -d ".$printer." -n ".$copies." ".$path;
  58. echo $cmd;
  59. exec($cmd);
  60. $this->model->setMessage("Printing Successful!", "That file was printed ".$copies." time(s) on printer ".$printer, "success");
  61. header("Location: /");
  62. }
  63. }