Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload zdjęć i zmniejszanie
Forum PHP.pl > Forum > PHP
deha21
Witam,
Mam skrypt zmniejszania zdjeć który już jakiś czas temu skleciłem i działa tak jak chce. Teraz potrzebuje go wykorzystać. Jest on wywoływany przez ajaxa ale to chyba nie ma znaczenia w tym przypadku.
Chodzi o to, że wrzucanie pliku działa tylko i wyłącznie wtedy gdy nie wkleje do pliku kodu funkcji resize (nie trzeba jej nawet wywowyłać).
  1. <?
  2.  
  3. $id=$_GET['id'];
  4.  
  5. $arr = pathinfo($_FILES["Filedata"]["name"]);
  6. $arr['extension'] = strtolower($arr['extension']);
  7. $file=uniqid().".".$arr['extension'];
  8.  
  9. move_uploaded_file($_FILES["Filedata"]["tmp_name"], "../files/gallery/".$id."/".$file);
  10.  
  11. require("../config.php");
  12. $wynik=mysql_query("INSERT INTO pictures values ('','$id','0','$file','0')");
  13.  
  14. function resize($filef, $new_width, $new_height, $thumb, $quality) {
  15. $info = getimagesize($filef);
  16. if($info === false) { return false; }
  17. $img = null;
  18. switch($info[2]){
  19. case IMAGETYPE_JPEG:
  20. $img = imagecreatefromjpeg($filef);
  21. break;
  22. case IMAGETYPE_GIF:
  23. $img = imagecreatefromgif($filef);
  24. break;
  25. case IMAGETYPE_PNG:
  26. $img = imagecreatefrompng($filef);
  27. break;
  28. default:
  29. return false;
  30. }
  31. $th = imagecreatetruecolor($new_width, $new_height);
  32.  
  33. switch($info[2]){
  34. case IMAGETYPE_JPEG:
  35. imagecopyresampled($th, $img, 0, 0, 0, 0, $new_width, $new_height, $info[0], $info[1]);
  36. imagejpeg($th, $filef, $quality);
  37. break;
  38. case IMAGETYPE_GIF:
  39. imagealphablending($th, true);
  40. imagetruecolortopalette($imgDestination5, true, 256);
  41. imagecopyresampled($th, $img, 0, 0, 0, 0, $new_width, $new_height, $info[0], $info[1]);
  42. imagegif($th, $filef);
  43. break;
  44. case IMAGETYPE_PNG:
  45. imagealphablending($th, false);
  46. imagesavealpha($th, true);
  47. imagecopyresampled($th, $img, 0, 0, 0, 0, $new_width, $new_height, $info[0], $info[1]);
  48. imagepng($th, $filef;
  49. break;
  50. }
  51. imagedestroy($th);
  52. imagedestroy($img);
  53. return true;
  54. }
  55.  
  56. //if ($info[0]>1024) {
  57. //$height = (1024/$info[0])*$info[1];
  58. //resize("../files/gallery/".$id."/".$file, 1024, $height, "../files/gallery/".$id."/".$file, 95);
  59. //}

W ten sposób nie działa. Jak widać nie wywołuje funkcji bo istnieje jako komentarz. Gdy usunę funkcję resize to plik się wrzuca. O co chodzi?
Fifi209
Włącz raportowanie błędów...

  1. imagecopyresampled($th, $img, 0, 0, 0, 0, $new_width, $new_height, $info[0], $info[1]);
  2. imagepng($th, $filef;
  3. break;


Nie brak przypadkiem nawiasu?
deha21
omg... ale siara winksmiley.jpg Rzeczywiście nie było. Teraz działa.
A raportowanie jest włączone ale i tak na nic się zda bo to jest wywoływane przez ajax więc błędy nie wyskakują (chyba że da się to jakoś zrobić?).

EDIT: No dobra a teraz czemu nie działa mi pomniejszanie zdjęć winksmiley.jpg
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.