Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] GD: problem z imagejpeg()
przemdro
post 4.03.2009, 06:26:42
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.05.2008

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


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
Go to the top of the page
+Quote Post
Foxx
post 4.03.2009, 07:08:34
Post #2





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


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.
Go to the top of the page
+Quote Post
przemdro
post 4.03.2009, 07:25:23
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.05.2008

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


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.

Ten post edytował przemdro 4.03.2009, 07:26:42
Go to the top of the page
+Quote Post
krowal
post 4.03.2009, 08:03:53
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


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.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
przemdro
post 4.03.2009, 08:10:08
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.05.2008

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


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
Go to the top of the page
+Quote Post
krowal
post 4.03.2009, 09:31:33
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


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) }


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
przemdro
post 4.03.2009, 09:45:47
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.05.2008

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


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
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 3.08.2025 - 07:20