Witam, mam taki plik upload.php jak poniżej i mam problem. Gdy chciałem zuploadować obrazek JPG, a $imgType = 'png' to wyskoczył mi taki błąd:
Kod
Fatal error: imagepng() [<a href='function.imagepng'>function.imagepng</a>]: gd-png: fatal libpng error: zlib error in /home/poligrafia1/ftp/helmut/plaza/admin/upload.php on line 80
80 linia to:
  1. <?php
  2. ImagePNG($thumb, "min_posters/$plik_nazwa", 100);
  3. ?>

Przypuszczam ze chodzi tutaj o rozszerzenie pliku, plik wgrany został jako JPG i zapisany jako JPG, a w tym przypadku stwarza plik PNG z rozszerzeniem JPG. Jak zrobić by rozbić samą nazwę i rozszerzenie na dwie części?
  1. <?php
  2. include('connection.php');
  3. $connect = mysql_connect(SERWER,ADMIN,PASS) or die ('Błąd podczas łączenia z bazą MySQL.');
  4. $connect2 = mysql_select_db (DB) or die ('Błąd podczas łączenia z bazą'.DB.'.');
  5.  
  6. $plik_tmp = $_FILES['plik']['tmp_name'];
  7. $plik_nazwa = $_FILES['plik']['name'];
  8. $plik_rozmiar = $_FILES['plik']['size'];
  9.  
  10. $sp = explode(".",$plik_nazwa);
  11.  
  12. if($sp[1] == "gif" or $sp[1] == "jpg" or $sp[1] == "png") {
  13. if(is_uploaded_file($plik_tmp)) {
  14.  move_uploaded_file($plik_tmp, "posters/$plik_nazwa");
  15. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze 
  16. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  17. }
  18. else
  19. echo "Nie udało się wysłać pliku <strong>$plik_nazwa</strong> na serwer"; 
  20. }
  21. else echo "Plik niepoprawny!";
  22.  
  23. $query = mysql_query("SELECT * FROM config");
  24. $row = mysql_fetch_array($query);
  25. $imgType = $row['type'];
  26. $min_rozmiar = $row['min_rozmiar'];
  27. $rozmiar = $row['rozmiar'];
  28.  
  29.  
  30. if ($imgType == 'jpg') {
  31.  
  32.  list($width_original, $height_original) = GetImageSize("posters/$plik_nazwa");
  33.  
  34. $image = ImageCreateFromJpeg("posters/$plik_nazwa");
  35. $wymiar_szerokosc = $width_original * ($min_rozmiar/100);
  36. $wymiar_wysokosc = $height_original * ($min_rozmiar/100);
  37. $thumb = ImageCreateTruecolor($wymiar_szerokosc, $wymiar_wysokosc);
  38. ImageCopyResampled($thumb, $image, 0, 0, 0, 0, $wymiar_szerokosc, $wymiar_wysokosc, $width_original, $height_original);
  39.  
  40. ImageJPEG($thumb, "min_posters/$plik_nazwa", 100);
  41.  
  42. $rozmiar_szerokosc = $width_original * ($rozmiar/100);
  43. $rozmiar_wysokosc = $height_original * ($rozmiar/100);
  44. $huge = ImageCreateTruecolor($rozmiar_szerokosc, $rozmiar_wysokosc);
  45. ImageCopyResampled($huge, $image, 0, 0, 0, 0, $rozmiar_szerokosc, $rozmiar_wysokosc, $width_original, $height_original);
  46.  
  47. ImageJPEG($huge, "max_posters/$plik_nazwa", 80);
  48. }
  49. elseif ($imgType == 'png') {
  50.  
  51.  list($width_original, $height_original) = GetImageSize("posters/$plik_nazwa");
  52.  
  53. $image = ImageCreateFromJpeg("posters/$plik_nazwa");
  54. $wymiar_szerokosc = $width_original * ($min_rozmiar/100);
  55. $wymiar_wysokosc = $height_original * ($min_rozmiar/100);
  56. $thumb = ImageCreateTruecolor($wymiar_szerokosc, $wymiar_wysokosc);
  57. ImageCopyResampled($thumb, $image, 0, 0, 0, 0, $wymiar_szerokosc, $wymiar_wysokosc, $width_original, $height_original);
  58.  
  59. ImagePNG($thumb, "min_posters/$plik_nazwa", 100);
  60.  
  61. $rozmiar_szerokosc = $width_original * ($rozmiar/100);
  62. $rozmiar_wysokosc = $height_original * ($rozmiar/100);
  63. $huge = ImageCreateTruecolor($rozmiar_szerokosc, $rozmiar_wysokosc);
  64. ImageCopyResampled($huge, $image, 0, 0, 0, 0, $rozmiar_szerokosc, $rozmiar_wysokosc, $width_original, $height_original);
  65.  
  66. ImagePNG($huge, "max_posters/$plik_nazwa", 80);
  67. }
  68. elseif ($imgType == 'gif') {
  69.  
  70.  list($width_original, $height_original) = GetImageSize("posters/$plik_nazwa");
  71.  
  72. $image = ImageCreateFromJpeg("posters/$plik_nazwa");
  73. $wymiar_szerokosc = $width_original * ($min_rozmiar/100);
  74. $wymiar_wysokosc = $height_original * ($min_rozmiar/100);
  75. $thumb = ImageCreateTruecolor($wymiar_szerokosc, $wymiar_wysokosc);
  76. ImageCopyResampled($thumb, $image, 0, 0, 0, 0, $wymiar_szerokosc, $wymiar_wysokosc, $width_original, $height_original);
  77.  
  78. ImageGIF($thumb, "min_posters/$plik_nazwa", 100);
  79.  
  80. $rozmiar_szerokosc = $width_original * ($rozmiar/100);
  81. $rozmiar_wysokosc = $height_original * ($rozmiar/100);
  82. $huge = ImageCreateTruecolor($rozmiar_szerokosc, $rozmiar_wysokosc);
  83. ImageCopyResampled($huge, $image, 0, 0, 0, 0, $rozmiar_szerokosc, $rozmiar_wysokosc, $width_original, $height_original);
  84.  
  85. ImageGIF($huge, "max_posters/$plik_nazwa", 80);
  86. }
  87.  
  88. echo '<br /><br /><a href="admin.php">Wróć</a>';
  89. ?>