Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][GD] Jakkość tworzonych zdjęć
Forum PHP.pl > Forum > Przedszkole
lord_borsuk
Witam wszystkich
Tak na wstepie jest to fragment skryptu galerii.
Potrzebuje zmodyfikować ten skrypt tak żeby pobierał informacje o jakości dla pliku jpg z pliku define.inc.php i tworzyl miniaturke i duży plik zgodnie z jej parapetrami
  1. <?php
  2. ...
  3. define('JAKOSCMI','80'); //miniaturka
  4. define('JAKOSCMA','80'); //duży plik
  5. ...
  6. ?>


plik który dodaje wpisy do bazy oraz tworzy pliki jpg

  1. <?php
  2. if (!defined('APP_DIR')) exit('Nie można wywołać skryptu');
  3. if (!isset($_FILES['zdjecie']) || 
  4. !isset($_POST['zdjecie_opis'])) {
  5. $error = 'Błąd formularza';
  6. return;
  7. }
  8.  
  9. switch ($_FILES['zdjecie']['error']) {
  10. case 0: 
  11. if ($_FILES['zdjecie']['type']!='image/jpeg' && $_FILES['zdjecie']['type']!='image/pjpeg') {
  12. $error = 'Przesłany plik nie jest plikiem JPEG';
  13. return;
  14. }
  15. break;
  16. case 1:
  17. case 2:
  18. $error = 'Plik jest zbyt duży';
  19. return;
  20. break;
  21. case 3:
  22. $error = 'Proces przesyłania pliku nie został zakończony';
  23. return;
  24. case 4:
  25. $error = 'Nie przesłano pliku';
  26. return;
  27. default:
  28. $error = 'Wystąpił nieznany błąd nr.:'.$_FILE['plik']['error'].'. Przesłanie pliku nie powiodło się';
  29. return;
  30. }
  31.  
  32. if (trim($_POST['zdjecie_opis'])=='') {
  33. $error = 'Nie podano opisu zdjęcia';
  34. return;
  35. } 
  36. if (!isset($_GET['katid'])) {
  37. $error = 'Nie wybrano kategorii';
  38. return;
  39. }
  40. if (!Kategoria::kategoriaIstnieje($_GET['katid'], true)) {
  41. $error = 'Nie wybrano kategorii';
  42. return;
  43. }
  44.  
  45. $postfix = '';
  46. $nazwa = 'galeria/'.$_FILES['zdjecie']['name'];
  47. while(file_exists($nazwa)) $nazwa = 'galeria/'.substr(md5(microtime()), 0, 5).'_'.$_FILES['zdjecie']['name'];
  48.  
  49. $zdjObj = new Zdjecie();
  50. $zdjObj->_plik = basename($nazwa);
  51. $zdjObj->_opis = $_POST['zdjecie_opis'];
  52. $zdjObj->_kategoria = $_GET['katid'];
  53.  
  54. $staryObrazek = imagecreatefromjpeg($_FILES['zdjecie']['tmp_name']);
  55. list($width, $height) = getimagesize($_FILES['zdjecie']['tmp_name']);
  56. $wymiar = $height/$width;
  57. $widthN = $width;
  58. $heightN = $height;
  59. if ($width>$height) {
  60. if ($width>MAX_X) {
  61. $widthN = MAX_X;
  62. $heightN = $widthN*$wymiar;
  63. }
  64. } else {
  65. if ($height>MAX_Y) {
  66. $heightN = MAX_Y;
  67. $widthN = $heightN/$wymiar;
  68. }
  69. }
  70. $nowyObrazek = imagecreatetruecolor($widthN, $heightN);
  71. imagecopyresized($nowyObrazek, $staryObrazek, 0, 0, 0, 0, $widthN, $heightN, $width, $height);
  72. if (!@imagejpeg($nowyObrazek, $nazwa)) {
  73. imagedestroy($nowyObrazek);
  74. imagedestroy($staryObrazek);
  75. $error = 'Nie można zapisać zdjęcia';
  76. return;
  77. }
  78. imagedestroy($nowyObrazek);
  79.  
  80. if ($width>$height) {
  81. $widthN = MIN_X;
  82. $heightN = $widthN*$wymiar;
  83. } else {
  84. $heightN = MIN_Y;
  85. $widthN = $heightN/$wymiar;
  86. }
  87. $miniaturka = imagecreatetruecolor($widthN, $heightN);
  88. imagecopyresized($miniaturka, $staryObrazek, 0, 0, 0, 0, $widthN, $heightN, $width, $height);
  89. if (!@imagejpeg($miniaturka, 'galeria/mini_'.basename($nazwa))) {
  90. imagedestroy($miniaturka);
  91. imagedestroy($staryObrazek);
  92. $error = 'Nie można zapisać miniatruki zdjęcia';
  93. return;
  94. }
  95. imagedestroy($miniaturka);
  96. imagedestroy($staryObrazek);
  97.  
  98. if (Blad::jestBledem($rezultat = $zdjObj->zapisz())) {
  99. $error = $rezultat->_tresc;
  100. @unlink('galeria/mini_'.basename($nazwa));
  101. @unlink($nazwa);
  102. return;
  103. } 
  104.  
  105. $info = 'Zdjęcie dodano do bazy danych';
  106. ?>


oraz czy możecie mi powiedzieć w jaki sposób można ograniczyc maksymalny rozmiar przesyłanego pliku jpg, i ile on wynosi jeśli nie jest zdefiniowany questionmark.gif
ayeo
Maksymalny (jeżeli chodzi o PHP) jest zdefiniowany w php.ini jako max_upload_size (albo jakoś tak).
lord_borsuk
Cytat(ayeo @ 4.08.2008, 16:01:31 ) *
Maksymalny (jeżeli chodzi o PHP) jest zdefiniowany w php.ini jako max_upload_size (albo jakoś tak).


a dokładnie "upload_max_filesize" i domyslnie wynosi 2M
dzieki za podpowiedz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.