Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] GD: problem z imagejpeg()
Forum PHP.pl > Forum > Przedszkole
przemdro
Prosty problem: (co z tym zrobić?)
Cytat
Warning: imagejpeg() [function.imagejpeg]: Unable to open './zdj_big/0000162.jpg' for writing in xxxx/xml2.php on line 133
Fragment kodu pliku xml2.php odpowiedzialny za to:
Kod
         chmod('./zdj_big/', 0777);
        
        
             list($width, $height) = getimagesize("xxxx/".$value);
             if ($width>$height){
                  $new_width=400;
                  $new_height = round($height * $new_width/$width);
             } else {
                  $new_height=400;
                  $new_width = round($width * $new_height/$height);
             }
            
            
             if ($width>$new_width and $height>$new_height) {
                 $image_p = imagecreatetruecolor($new_width, $new_height);
                 $image = imagecreatefromjpeg("xxxx/".$value);
                 imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                 imagejpeg($image_p, './zdj_big/'.liczpa($q_id).'.jpg', 100);
             } else {
               $image = imagecreatefromjpeg("xxxx/".$value);
               imagejpeg($image, './zdj_big/'.liczpa($q_id).'.jpg', 100);
             }
gdzie $value to pierwotna nazwa pliku, a liczpa($q_id); generuje string przedstawiający pierwszy z brzegu wolny numer ID zdjęcia ze stałą ilością zer.

PHP 4.4.7
GD Version 2.0 or higher
JPG Support enabled
Foxx
Próbowałeś tego:
http://pl.php.net/manual/pl/function.imagejpeg.php#60315
lub tego:
http://pl.php.net/manual/pl/function.imagejpeg.php#59999
?
P.S. Do kodu php używaj znaczników php, lepiej się czyta.
przemdro
Warning: touch() [function.touch]: Unable to create file ./zdj_small/000171.jpg because No such file or directory in xxxx/xml2.php on line 107

touch()
też nie działa...

Próbowałem umieścić wszystko pomiędzy:
ini_set(safe_mode,Off);
...
ini_set(safe_mode,On);
ale ten sposób też nie daje żadnego rezultatu.
krowal
A czytać umie? "No such file or directory", "Unable to open './zdj_big/0000162.jpg' for writing" - to znaczy ze podałeś złą ścieżkę a nie że safe_mode jest włączone. Sprawdź dokładnie do jakiego pliku próbujesz się odwołać i z jakiego miejsca (katalogu) wywołujesz skrypt próbujący otwierać pliki.
przemdro
Spoko, to przedszkole jest biggrin.gif

No więc tak. Chciałbym zrobić NOWY plik jpg, używając imagejpeg()
Załóżmy że plik taki chciałbym sobie nazwać 100.jpg
W katalogu w którym znajduje się skrypt php jest też folder zdj_big w którym chciałbym utworzyć ten plik.
Co mam wpisać jako parametr filename żeby imagejpeg() zadziałało? tongue.gif
krowal
Hmm, to że skrypt znajduje się w tym samym katalogu co katalog na zdjęcia to nie znaczy, że otwarcie pliku z tego katalogu będzie działało w taki sposób, że w skrypcie odwołasz się do katalogu bieżącego "." Jeśli twój skrypt jest np includowany z innego skryptu który jest np katalog wyżej to już tak nie zadziała smile.gif

przykład (zły):
plik.php:
{ include(katalog_na_zdjecia/skrypt.php) }

katalog_na_zdjecia/skrypt.php:
{ open(zdj_small/zdj.jpg) } //zakladajac ze zdj_small znajduje sie w 'katalog_na_zdjecia'

Przykład (lepszy smile.gif )
plik.php:
{ include(katalog_na_zdjecia/skrypt.php) }

katalog_na_zdjecia/skrypt.php:
{ open(katalog_na_zdjecia/zdj_small/zdj.jpg) }
przemdro
Wielkie dzięki :-)
Jakbyś mi nie zwrócił uwagi bym się męczył jeszcze tydzień haha.gif
Skryptu tego używam już od bardzo dawna i rutynowo wgrywając go na kolejny serwer przesunął mi się jeden chdir(); poza if'a w którym był używany tongue.gif Wystarczyło dać kolejnego chdir() który ustawia wszystko na bierzący katalog i działa smile.gif
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.