save.php 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. $http_host = $_SERVER["HTTP_HOST"];
  3. include("../functions.php");
  4. $con = startdb("rw");
  5. //Language
  6. $lang = selectLanguage();
  7. include("../lang/lang_$lang.php");
  8. //Get post data
  9. $username = mysqli_real_escape_string($con, $_POST["username"]);
  10. $album = mysqli_real_escape_string($con, $_POST["album"]);
  11. //Get the data form the photos
  12. $total = 0;
  13. $files = [];
  14. $titles = [];
  15. $descriptions = [];
  16. while (strlen($_POST["file_$total"]) > 0){
  17. //$files[$total] = $_POST["file_$total"];
  18. $img = $_POST["file_$total"];
  19. error_log("FILE: " . $img);
  20. //The next line wont work
  21. if (strpos($img, "data:image/jpeg;base64,") < 10){
  22. $ext = "jpg";
  23. $img = str_replace("data:image/jpeg;base64,", "", $img);
  24. }
  25. else if (strpos($img, "data:image/png;base64,") < 10){
  26. $ext = "png";
  27. $img = str_replace("data:image/png;base64,", "", $img);
  28. }
  29. $img = str_replace(" ", "+", $img);
  30. $files[$total] = base64_decode($img);
  31. $titles[$total] = mysqli_real_escape_string($con, $_POST["title_$total"]);
  32. $descriptions[$total] = mysqli_real_escape_string($con, $_POST["description_$total"]);
  33. //Save image to file
  34. $file = "image." . $ext;
  35. $success = file_put_contents($file, $files[$total]);
  36. $total ++;
  37. }
  38. //Get next photo id
  39. $q_id = mysqli_query($con, "SELECT max(id) AS maxid FROM photo;");
  40. $r_id = mysqli_fetch_array($q_id);
  41. $id = $r_id["maxid"] + 1;
  42. //Store information
  43. for ($i = 0; $i < $total; $i++){
  44. //Get filename
  45. if (strlen($titles[$i]) > 0){
  46. $fname = "$id-" . permalink($titles[$i]);
  47. }
  48. else{
  49. $fname = "$id";
  50. }
  51. //Save image to file
  52. $file = "../img/galeria/$fname.$ext";
  53. $success = file_put_contents($file, $files[$i]);
  54. error_log("SUCCESS" . $success);
  55. //Convert to jpg and create miniature and preview_image
  56. //$im = new imagick("../img/galeria/$fname.png");
  57. //$handle = fopen("../img/galeria/$fname.png", "rb");
  58. $im = new Imagick("../img/galeria/$fname.$ext");
  59. //$im -> readImageFile($handle);
  60. $im -> setImageBackgroundColor("white");
  61. $im = $im -> flattenImages();
  62. $im -> setImageFormat("jpg");
  63. $im -> writeImage("../img/galeria/$fname.jpg");
  64. $im -> resizeImage(800, 0, Imagick::FILTER_POINT, true);
  65. $im -> resizeImage(0, 800, Imagick::FILTER_POINT, true);
  66. $im -> writeImage("../img/galeria/view/$fname.jpg");
  67. $im -> resizeImage(600, 0, Imagick::FILTER_POINT, true);
  68. $im -> resizeImage(0, 600, Imagick::FILTER_POINT, true);
  69. $im -> writeImage("../img/galeria/preview/$fname.jpg");
  70. $im -> resizeImage(400, 0, Imagick::FILTER_POINT, true);
  71. $im -> resizeImage(0, 400, Imagick::FILTER_POINT, true);
  72. $im -> writeImage("../img/galeria/miniature/$fname.jpg");
  73. $im -> resizeImage(200, 0, Imagick::FILTER_POINT, true);
  74. $im -> resizeImage(0, 200, Imagick::FILTER_POINT, true);
  75. $im -> writeImage("../img/galeria/thumb/$fname.jpg");
  76. $im -> clear();
  77. $im -> destroy();
  78. //Delete initial png
  79. //unlink("../img/galeria/$fname.png");
  80. //Get width, height ans size
  81. $s = filesize("../img/galeria/$fname.jpg");
  82. $w = getimagesize("../img/galeria/$fname.jpg")[0];
  83. $h = getimagesize("../img/galeria/$fname.jpg")[1];
  84. //Entry in database
  85. mysqli_query($con, "INSERT INTO photo (id, file, permalink, title_es, title_en, title_eu, description_es, description_en, description_eu, width, height, size, approved, username) VALUES ($id, '$fname.jpg', '$fname', '$titles[$i]', '$titles[$i]', '$titles[$i]', '$descriptions[$i]', '$descriptions[$i]', '$descriptions[$i]', $w, $h, $s, 0, '$username')");
  86. error_log("INSERT INTO photo (id, file, permalink, title_es, title_en, title_eu, description_es, description_en, description_eu, width, height, size, approved, username) VALUES ($id, '$fname.jpg', '$fname', '$titles[$i]', '$titles[$i]', '$titles[$i]', '$descriptions[$i]', '$descriptions[$i]', '$descriptions[$i]', $w, $h, $s, 0, '$username')");
  87. mysqli_query($con, "INSERT INTO photo_album VALUES ($id, $album);");
  88. version();
  89. $id ++;
  90. }
  91. ?>