Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][GD]Biblioteka GD nie działa w folderze bez chmod 777
Forum PHP.pl > Forum > Przedszkole
Johnas
  1. /* ---=== Zmieniamy rozmiar ===--- */
  2. $info = getimagesize("upload/avatar/$id.$extension");
  3.  
  4. $mime = $info['mime'];
  5.  
  6. switch ($mime) {
  7. case 'image/jpeg':
  8. $image_create_func = 'imagecreatefromjpeg';
  9. $image_save_func = 'imagejpeg';
  10. $new_image_ext = 'jpg';
  11. break;
  12.  
  13. case 'image/png':
  14. $image_create_func = 'imagecreatefrompng';
  15. $image_save_func = 'imagepng';
  16. $new_image_ext = 'png';
  17. break;
  18.  
  19. case 'image/gif':
  20. $image_create_func = 'imagecreatefromgif';
  21. $image_save_func = 'imagegif';
  22. $new_image_ext = 'gif';
  23. break;
  24.  
  25. default:
  26. throw Exception('Unknown image type.');
  27. }
  28.  
  29. $img = $image_create_func("upload/avatar/$id.$extension");
  30. list($width, $height) = getimagesize("upload/avatar/$id.$extension");
  31.  
  32. $newHeight = ($height / $width) * $avatarWidth;
  33. $tmp = @imagecreatetruecolor($newWidth, $newHeight)
  34. or die('Cannot Initialize new GD image stream');
  35. imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
  36.  
  37. if (file_exists($id.$new_image_ext)) {
  38. unlink($id.$new_image_ext);
  39. }
  40. $image_save_func($tmp, "upload/avatar/$id-change.$new_image_ext");



Ten o to kod w momencie kiedy jest po za chmodami 777 nie chce mi działać, a w momencie kiedy go dam do katalogu gdzie są obrazki to pięknie działa... Sprawdziłem to tym kodem:
  1. <?php
  2. function resize($newWidth, $targetFile, $originalFile) {
  3.  
  4. $info = getimagesize($originalFile);
  5. $mime = $info['mime'];
  6.  
  7. switch ($mime) {
  8. case 'image/jpeg':
  9. $image_create_func = 'imagecreatefromjpeg';
  10. $image_save_func = 'imagejpeg';
  11. $new_image_ext = 'jpg';
  12. break;
  13.  
  14. case 'image/png':
  15. $image_create_func = 'imagecreatefrompng';
  16. $image_save_func = 'imagepng';
  17. $new_image_ext = 'png';
  18. break;
  19.  
  20. case 'image/gif':
  21. $image_create_func = 'imagecreatefromgif';
  22. $image_save_func = 'imagegif';
  23. $new_image_ext = 'gif';
  24. break;
  25.  
  26. default:
  27. throw Exception('Unknown image type.');
  28. }
  29.  
  30. $img = $image_create_func($originalFile);
  31. list($width, $height) = getimagesize($originalFile);
  32.  
  33. $newHeight = ($height / $width) * $newWidth;
  34. $tmp = imagecreatetruecolor($newWidth, $newHeight);
  35. imagecopyresampled($tmp, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
  36.  
  37. if (file_exists($targetFile)) {
  38. unlink($targetFile);
  39. }
  40. $image_save_func($tmp, "$targetFile.$new_image_ext");
  41. }
  42.  
  43. $files = glob('*.{jpg,png,gif}', GLOB_BRACE);
  44. foreach($files as $file) {
  45. list($filename, $ext) = explode(".", $file);
  46. resize(100, $filename, $file);
  47. }
  48. ?>


Co jest nie tak ? Sypie się jak moja była w tym momencie:
  1. $tmp = imagecreatetruecolor($newWidth, $newHeight);


zwraca: "Cannot Initialize new GD image stream"

Pozdrawiam smile.gif
goartur
Nie widze u ciebie

  1. imagepng($im);
  2. imagepng($im, 'nazwa.png');
  3. imagedestroy($im);
Johnas
bo jest:
  1. $image_create_func
Jak mowilem dziala w katalogu gdzie sa obrazki a jak na index.php chce zmienic obrazki w upload to nie dziala juz
Pyton_000
porównaj uprawnienia (owner:group) dla index.php i katalogów oraz plików jpg
Johnas
różnica jest w chmod ale nie chce dodawać do głownego katalogu chmod 777 bo to bez sensu i nie bezpieczne
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.