Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]imagecreatefromjpeg()-Błąd
kujol
post
Post #1





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


Witam, funkcja imagecreatefromjpeg() zwraca mi false i nie mogę sobie z tym poradzić. Do zmiennej $name dochodzi prawidłowa nazwa, $img jest puste. Brak jakiegokolwiek błędu.

  1.  
  2. $img = imagecreatefromjpeg($name);
  3. echo " jpeg: ".$img;
  4.  
  5. if($this->img){
  6. echo "Ok!";
  7. }
  8.  
  9. else{
  10. echo "Błąd!";
  11. }
  12.  


@edit

Dokładniej wygląda to tak i błąd (funkcja wzraca false) jest w lini 48.

  1.  
  2. <?php
  3.  
  4. class Upload{
  5.  
  6. private $maxSize;
  7. private $catalog;
  8.  
  9. private $file;
  10. private $type;
  11. private $size;
  12. private $name;
  13. private $name_tmp;
  14. private $error;
  15.  
  16. private $width;
  17. private $height;
  18.  
  19. function Wgraj(){
  20.  
  21. $this->maxSize = 10000000; //max rozmiar pliku w bajtach ~ 10 MB
  22. $this->catalog = $_SERVER['DOCUMENT_ROOT']."/str/"; //folder docelowy
  23.  
  24. $this->file = $_FILES['file']['name'];
  25. $this->type = $_FILES['file']['type'];
  26. $this->size = $_FILES['file']['size'];
  27. $this->name = $_FILES['file']['name'];
  28. $this->name_tmp = $_FILES['file']['tmp_name'];
  29. $this->error = $_FILES['file']['error'];
  30.  
  31. $this->width = $_POST['width'];
  32. $this->height = $_POST['height'];
  33.  
  34. $this->submit = $_POST['submit'];
  35. $this->mini = $_POST['mini'];
  36.  
  37. if (isset($this->submit)){ //sprawdza czy został wciśnięty przycisk wyslij
  38.  
  39. if(isset($this->mini)){ //sprawdza czy został wybrana opcja miniaturki
  40. //uploda + miniaturka
  41. if($this->type == "image/jpeg" OR $this->type == "image/png" OR $this->type == "image/gif"){ //dozwolone typy grafik
  42.  
  43. if ($this->size <= $this->maxSize){
  44.  
  45. if(move_uploaded_file($this->name_tmp, $this->catalog.$this->name)){ //zapisuje plik w folderze
  46. echo "Pomyślnie wgrano plik!<br/>";
  47.  
  48. if($this->type == "image/jpeg"){
  49. $this->img = imagecreatefromjpeg($this->name); //wybiera grafikę jpeg do zmniejszenia
  50. echo "$this->name: jpeg:".$this->img;
  51. if($this->img){
  52. echo "Ok!";
  53. }
  54.  
  55. else{
  56. echo "Błąd!";
  57. }
  58. }
  59.  
  60. elseif($this->type == "image/png"){
  61. $this->img = imagecreatefrompng($this->name); //wybiera grafikę png do zmniejszenia
  62. echo "png".$this->img;
  63. }
  64.  
  65. else{
  66. $this->img = imagecreatefromgif($this->name); //wybiera grafikę gif do zmniejszenia
  67. echo "gif".$this->img;
  68. }
  69.  
  70. $this->original_width = imagesx($this->img); //pobiera rozmiary oryginalnej grafiki
  71. $this->original_height = imagesy($this->img);
  72.  
  73. $this->img_mini = imagecreatetruecolor($this->width, $this->height); //pobiera id zdjęcia
  74. echo "<h1>DANE: 1: $this->img_mini, 2: $this->img, 3: $this->width, 4: $this->height, 5: $this->original_width, 6: $this->original_height</h1>";
  75. if(imagecopyresampled($this->img_mini, $this->img, 0, 0, 0, 0, $this->width , $this->height, $this->original_width , $this->original_height)){ //tworzy miniaturkę
  76.  
  77. if($this->typ == "image/jpeg"){
  78. imagejpeg($this->img_mini, $this->catalog."mini.".$this->name, 80); //zapisuje jpeg w folderze
  79. }
  80.  
  81. elseif($this->typ == "image/png"){
  82. imagepng($this->img_mini, $this->catalog."mini.".$this->name, 80); //zapisuje png w folderze
  83. }
  84.  
  85. else{
  86. imagegif($this->img_mini, $this->catalog."mini.".$this->name, 80); //zapisuje gif w folderze
  87. }
  88.  
  89. imagedestroy($this->img); //zwalnia pamięć
  90. imagedestroy($this->img_mini);
  91.  
  92. echo "Pomyślnie utworzono miniaturkę!";
  93. }
  94.  
  95. else{
  96. echo $this->error."<br/>"; //ilość wszytkich błędów w tablicy files
  97. throw new Exception("Błąd podczas tworzenia miniaturki pliku, spróbuj ponownie!");
  98. }
  99. }
  100.  
  101. else{
  102. echo $this->error."<br/>"; //ilość wszytkich błędów w tablicy files
  103. throw new Exception("Błąd podczas wgrywania pliku, spróbuj ponownie!");
  104. }
  105. }
  106.  
  107. else{
  108. echo "Plik jest zbyt duży!";
  109. }
  110. }
  111.  
  112. else{
  113. echo "Zły typ pliku!";
  114. }
  115. }
  116.  
  117. else{
  118. //upload
  119. if ($this->size <= $this->maxSize){
  120.  
  121. if(move_uploaded_file($this->name_tmp, $this->catalog.$this->name)){ //zapisuje plik w folderze
  122. echo "Pomyślnie wgrano plik!";
  123. }
  124.  
  125. else{
  126. echo $this->error."<br/>"; //ilość wszytkich błędów w tablicy files
  127. throw new Exception("Błąd podczas wgrywania pliku, spróbuj ponownie!");
  128. }
  129. }
  130.  
  131. else{
  132. echo "Plik jest zbyt duży!";
  133. }
  134. }
  135.  
  136. }
  137.  
  138. else{
  139. }
  140.  
  141. }
  142. }
  143.  
  144. $upload = new Upload;
  145. $upload->Wgraj();
  146.  
  147. ?>
  148.  


Ten post edytował kujol 25.02.2014, 19:44:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kujol
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


To samo, utworzyłem 2 plik bez klasy, tylko tworzenie miniaturki i tam normalnie działa.

@edit:

Robię nową klasę, ale coś wywala mi błąd i nie wiem dlaczego. Błąd ten nie utrudnia działania, tylko się wyświetla.

  1. <!doctype html>
  2. <html>
  3. <head>
  4.  
  5. <title>Upload pliku na serwer</title>
  6. <meta charset="UTF-8">
  7.  
  8. </head>
  9. <body>
  10.  
  11. <form method="post" action="" enctype="multipart/form-data">
  12. Szerokość: <input type="text" name="width" value="200"/>px
  13. Wysokość: <input type="text" name="height" value="150"/>px<br/>
  14. <input type="submit" name="submit" value="Wyślij"/>
  15. </form>
  16.  
  17. <?Php
  18.  
  19. class Uploda{
  20.  
  21. public $width;
  22. public $height;
  23.  
  24. public $catalog;
  25. public $maxSize;
  26.  
  27. public function Data($width, $height){
  28.  
  29. $this->width = $width;
  30. $this->height = $height;
  31. echo $this->width = $width.$this->height = $height;
  32. }
  33.  
  34. public function Settings($catalog, $maxSize){
  35.  
  36. $this->catalog = $catalog;
  37. $this->maxSize = $maxSize;
  38. }
  39.  
  40. public function UploadFile(){
  41.  
  42. if($this->width <= $this->maxSize){
  43. echo 'Is ok!';
  44. }
  45.  
  46. else{
  47. }
  48.  
  49. echo 'To jest juz upload';
  50. }
  51.  
  52. public function UploadImageAndMini(){}
  53.  
  54.  
  55. }
  56.  
  57. $upload = new Uploda;
  58. $upload->Data($_POST['width'], $_POST['height']);
  59. $upload->Settings('https://www.adresstrony.pl/', 10000000); //Folder docelowy i max rozmiar pliku
  60. $upload->UploadFile();
  61. $upload->UploadImageAndMini();
  62.  
  63. ?>
  64.  
  65. </body>
  66. </html>


Błąd jest w tej linijce:

  1. $upload->Data($_POST['width'], $_POST['height']);


Kod
Notice: Undefined index: width in https://www.adresstrony.pl/index.php on line 59

Notice: Undefined index: height in https://www.adresstrony.pl/index.php on line 59


Gdy zamiast $_POST wstawię tam $zmienna jest nadal to samo, błąd ustępuje, kiedy jest tam coś wpisane na sztywno.


Ten post edytował kujol 26.02.2014, 18:10:41
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 00:11