Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Upload zdjęć problem ze zmianą rozmiaru
DonJeday
post 2.11.2008, 11:20:02
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


Witam,



Co robię źle, że rozmiar zdjęcia się nie zmniejsza? Chcę je już wysłać zmniejszone na serwer.

  1. <?php
  2.  
  3. $uploaddir = "zdjecia/";
  4. $namefoto = ''.$user_info[1].'.jpg';
  5. $uploadfile = $uploaddir . $namefoto;
  6.  
  7. list($width, $height) = getimagesize($foto);
  8. $new_width = 188;
  9. $new_height = 250;
  10.  
  11. $image_p = imagecreatetruecolor($new_width, $new_height);
  12. $image = imagecreatefromjpeg($foto);
  13. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  14.  
  15. imagejpeg($image_p, null, 100);
  16.  
  17. if(move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile)) {
  18.  $smarty->assign('title_color','green');
  19.  $smarty->assign('message_title','Gratulacje!');
  20.  $smarty->assign('message_text','Zdjęcie zostało zaktualizowane.');
  21.  $smarty->assign('message_back','/konto/ucp/profil.html');
  22. } else {
  23.  $smarty->assign('title_color','red');
  24.  $smarty->assign('message_title','Błąd!');
  25.  $smarty->assign('message_text','Zdjęcie nie zostało zaktualizowane.');
  26.  $smarty->assign('message_back','/konto/ucp/profil.html');
  27. }
  28. ?>


Ten post edytował DonJeday 2.11.2008, 11:44:13


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Kildyt
post 2.11.2008, 11:56:02
Post #2





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Ja korzystam z takiego kodu do zmiany rozmiaru:
  1. <?php
  2. $newfile = ''; // ścieżka do zapisania miniaturki
  3. $img = imagecreatefromjpeg($image);
  4. $width  = imagesx($img);
  5. $height = imagesy($img);
  6. $width_mini = "200";
  7. $height_mini = "150";
  8. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  9. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width  , $height);
  10. imagejpeg($img_mini, $newfile, 80);
  11. imagedestroy($img);
  12. imagedestroy($img_mini);
  13. ?>


--------------------
Go to the top of the page
+Quote Post
DonJeday
post 2.11.2008, 12:06:52
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


Dzięki pomogło!


--------------------
Go to the top of the page
+Quote Post
wwojteko
post 5.12.2008, 10:57:15
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 31.10.2007

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


Witam!
Mam problem z kodem jak w przykładzie powyżej. Nie działa mi to. Ko wygląda tak:
  1. <?php
  2. $newfile = ''; // ścieżka do zapisania miniaturki
  3. $image='sample.jpg';
  4. $img = imagecreatefromjpeg($image);
  5. $width  = imagesx($img);
  6. $height = imagesy($img);
  7. $width_mini = "200";
  8. $height_mini = "150";
  9. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  10. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width  , $height);
  11. imagejpeg($img_mini, $newfile, 80);
  12. imagedestroy($img);
  13. imagedestroy($img_mini);
  14. echo'<img src="'.$newfile.'" /><br />';
  15. echo'<img src="'.$image.'" />';
  16. ?>

I problem polega na tym, że po odpaleniu skryptu wyświetla mi się taka treść:

" ˙Ř˙ŕJFIF˙ţ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 80 ˙ŰC   %# , #&')*)-0-(0%()(˙ŰC   (((((((((((((((((((((((((((((((((((((((((((((((((((˙Ŕúź"˙Ä ˙Äľ}!1AQa"q2'Ą#BąÁRŃđ$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š'""•–—˜™š˘Ł¤ĽŚ§¨ŠŞ˛ł´ľśˇ¸šşÂĂÄĹĆÇČÉĘŇÓÔŐÖ×ŘŮÚáâăäĺćçčéęńňóôőö÷řůú˙Ä
 ˙Äľw!1AQaq"2B'ĄąÁ #3RđbrŃ $4á%ń&'()....."

Trochę go więcej ale nie wklejałem całego, ogólnie nie tworzy mi miniaturki i nie zapisuje jej na serwerze. Mam prawa dostępu do katalogu na 777 i wykonywania skryptu tez. Serwer mam na az.pl i w info php jest obsługa GD. Więc w czym może być problem?



Wiem, że zmienna $newfile to ma być ścieżka do folderu gdzie mają być tworzone miniaturki ale jak tam stawie np $newfile='/mini/' to mi wywala błąd:
Warning: imagejpeg() [function.imagejpeg]: Unable to open '/mini/' for writing: Is a directory in /home/aa16027/domains/jakontrans.pl/public_html/test/mini.php on line 21

Mam katalog mini ustawiony na 777 więc wszelkie prawa i nie wiem dlaczego tak się dzieje. Ten błąd jest w linijce:

imagejpeg($img_mini, $newfile, 80);

I teraz dlaczego tak jest ? Dlaczego jest komunikat, że nie można otworzyć katalogu mini do zapisu ? Dlatego przedtem próbowałem do katalogu głównego i też nie działa. Ma ktoś jakiś pomysł?
Go to the top of the page
+Quote Post
ucho
post 5.12.2008, 11:26:35
Post #5





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


Nie dziw się php - jakbyś wymagał podania nazwy _pliku_ a ktoś dawał ci nazwę katalogu to też być wyrzucał ostrzeżenia smile.gif
Pewnie portrzebujesz coś w stylu " $newfile.$image" zamiast "$image"
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: 24.07.2025 - 17:44