Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][html]Resize zdjęcia i błędy, Podczas wysyłania pliku na serwer pokazują się błędy
redelek
post
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Witam,

Robię sobie taki kodzik

  1. <?php
  2. function resize_pic($nazwa_pliku, $nowy_plik, $katalog, $nowaW, $nowaH) {
  3.  
  4. $image_type = strstr($nazwa_pliku, '.'); //sprawdzamy naglówek pliku
  5. switch($image_type) { //szukamy czy zgada się z naszym opcjami
  6.  case '.jpg':
  7.  $zrodlo = imagecreatefromjpeg($nazwa_pliku);
  8.  break;
  9.  case '.png':
  10.  $zrodlo = imagecreatefrompng($nazwa_pliku);
  11.  break;
  12.  case '.gif':
  13.  $zrodlo = imagecreatefromgif($nazwa_pliku);
  14.  break;
  15. /* case '.bmp':
  16.  $zrodlo = imagecreatefromwbmp($nazwa_pliku);
  17.  break;*/
  18.  default:
  19.  echo("Nieznany typ obrazka :(");
  20. die;
  21. break;
  22.  }
  23.  
  24. $plik = $nowy_plik . $nazwa_pliku;
  25. $pelna_sciezka = $katalog . $plik;
  26. list($width, $height) = getimagesize($nazwa_pliku);
  27. $miniaturka = imagecreatetruecolor($nowaW, $nowaH);
  28. imagecopyresized($miniaturka, $zrodlo, 0, 0, 0, 0, $nowaW, $nowaH, $width, $height);
  29. imagejpeg($miniaturka, $pelna_sciezka, 90);
  30. $sciezka_do_pliku = $pelna_sciezka;
  31. return $sciezka_do_pliku;
  32.  
  33. }
  34. ?>

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  2. transitional.dtd">
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  4. <title>Upload</title>
  5. </head>
  6.  
  7. <div>
  8. <form enctype="multipart/form-data" action="rezize2.php" method="POST">
  9.  
  10. <input name="plik" type="file" />
  11. <input type="submit" value="Wyślij plik" />
  12. </form>
  13. </div>
  14.  
  15. [php]
  16.  
  17. $plik_tmp = $_FILES['plik']['tmp_name'];
  18. $plik_nazwa = $_FILES['plik']['name'];
  19. $plik_rozmiar = $_FILES['plik']['size'];
  20.  
  21. if(is_uploaded_file($plik_tmp)) {
  22. move_uploaded_file($plik_tmp, "orginal/$plik_nazwa");
  23. resize_pic($plik_nazwa,"tumb/$plik_nazwa",'450','350');
  24. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  25. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  26. }
  27. [/php]
  28. </body>


Mam takie błędy
Warning: Missing argument 5 for resize_pic(), called in C:\wamp\www\image size\rezize2.php on line 62 and defined in C:\wamp\www\image size\rezize2.php on line 2

Warning: imagecreatefromjpeg(3270-1.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\image size\rezize2.php on line 7

Warning: getimagesize(3270-1.jpg) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\image size\rezize2.php on line 26

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\wamp\www\image size\rezize2.php on line 27

Warning: imagecopyresized(): supplied argument is not a valid Image resource in C:\wamp\www\image size\rezize2.php on line 28

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wamp\www\image size\rezize2.php on line 29
Plik: 3270-1.jpg o rozmiarze 225414 bajtów został przesłany na serwer!

Samo w sobie wszystko działa, pliki potrafią się zmniejszać. Chodzi mi o to że jak wysyłam plik to jeden ma się zachować w folderku orginal, a ten zmniejszony w folderku tumb. Niestety powstaje tylko orginał.

Zobaczcie fachowym okiem może coś nakopałem i da radę to łatwo usunąć

Redelek
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wytlumacz mi prosze czego nie rozumiesz w tym komunikacie:
"Warning: Missing argument 5 for resize_pic(),"
?
Do pieciu nie umiesz liczyc czy jak? Zjadles jeden parametr przy wywolaniu tamtej funkcji.
Go to the top of the page
+Quote Post
redelek
post
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(nospor @ 25.01.2008, 16:03:26 ) *
Wytlumacz mi prosze czego nie rozumiesz w tym komunikacie:
"Warning: Missing argument 5 for resize_pic(),"
?
Do pieciu nie umiesz liczyc czy jak? Zjadles jeden parametr przy wywolaniu tamtej funkcji.


Oki powolutku. Do pięciu umiem liczyć i to bez problemu . O proszę 1..5 i po sprawie. To chyba grupa dla "Przedszkole" tak czyli mogę proste pytania zadawać TAK?

Dobra bardzo dziękuję za taką pomoc PUCHCIU
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
To chyba grupa dla "Przedszkole" tak czyli mogę proste pytania zadawać TAK?
Nie, proste pytania to byś mogl w żlobku zadawac. Skoro ci php wyrzucił jak wół na ekran informacje co jest nie tak to czemu tego nie przetrawisz tylko na forum lecisz? Troche samodzielnosci (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat
Dobra bardzo dziękuję za taką pomoc
To juz nie wiem... rozwiązales to wkoncu czy nie?
  1. <?php
  2. 1 2 4  5  
  3. resize_pic($plik_nazwa,"tumb/$plik_nazwa",'450','350');//widzisz. brakuje 3. wg. komunikatu brakuje 5, ale wydaje mi sie ze ty zjadles sr
    odek
  4. ?>

Wywolales to z 4 parametrami, a ta funkcja w definicji wymaga pięciu parametrów (1,2,3,4,5 - pisze dla pewnosci bo Twoje 1..5 mnie nie przekonalo)
  1. <?php
  2. 1 2 3  4 5
  3. function resize_pic($nazwa_pliku, $nowy_plik, $katalog, $nowaW, $nowaH) {
  4. ?>

Widzisz, tobie przy wywolaniu brakuje jednego parametru. pierwszy zakladam to: $plik_nazwa, drugi to "tumb/$plik_nazwa", trzeciego (katalog nie ma) a potem szerokosc i wysokosc masz. Proste.
Go to the top of the page
+Quote Post
redelek
post
Post #5





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(nospor @ 25.01.2008, 16:22:24 ) *
To juz nie wiem... rozwiązales to wkoncu czy nie?


Nie nadal walczę problem jest w tym, że jak resize mam w oddzielnym pliku to ładnie zmniejsza. Mi chodzi o to by za jednym razem wysłać orginal i miniaturkę przy czym każde do innego folderku.
O tych 5 parametrach to "zjadłem jeden", ale nie nie robi miniaturki pomimo 5 parametrów:(
I tu mam problem


Redelek
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
O tych 5 parametrach to "zjadłem jeden", ale nie nie robi miniaturki pomimo 5 parametrów:(
To skoro juz to poprawiles, to pokaz nowe bledy o ile takie są. Pokaz rowniez kod po poprawkach, bo czesto sie zdarza ze te poprawki sa nie teges (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
redelek
post
Post #7





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


To ja

No tak mnie nospor zmobilizował że zrobiłem i działa.

Jeśli komuś się przyda lub chce poprawić to proszę bardzo.

  1. function resize_pic($nazwa_pliku, $nowaW, $nowaH) {
  2. $dir_orginal="orginal/";
  3. $dir="tumb/";
  4. $image_type = strstr($nazwa_pliku, '.'); //sprawdzamy naglówek pliku
  5. switch($image_type) { //szukamy czy zgada się z naszym opcjami
  6.  case '.jpg':
  7.  $zrodlo = imagecreatefromjpeg($dir_orginal.$nazwa_pliku);
  8.  break;
  9.  case '.png':
  10.  $zrodlo = imagecreatefrompng($dir_orginal.$nazwa_pliku);
  11.  break;
  12.  case '.gif':
  13.  $zrodlo = imagecreatefromgif($dir_orginal.$nazwa_pliku);
  14.  break;
  15. /* case '.bmp':
  16.  $zrodlo = imagecreatefromwbmp($nazwa_pliku);
  17.  break;*/
  18.  default:
  19.  echo("Nieznany typ obrazka :(");
  20. die;
  21. break;
  22.  }
  23.  
  24.  
  25. $pelna_sciezka = $dir.$nazwa_pliku;
  26. list($width, $height) = getimagesize($dir_orginal.$nazwa_pliku);
  27. $miniaturka = imagecreatetruecolor($nowaW, $nowaH);
  28. imagecopyresized($miniaturka, $zrodlo, 0, 0, 0, 0, $nowaW, $nowaH, $width, $height);
  29. imagejpeg($miniaturka, $pelna_sciezka, 90);
  30. //$sciezka_do_pliku = $pelna_sciezka;
  31. return $pelna_sciezka;
  32.  
  33. }
  34.  
  35. ?>
  36.  
  37. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
  38. transitional.dtd">
  39. <html>
  40. <head>
  41. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  42. <title>Upload</title>
  43. </head>
  44. <body>
  45.  
  46. <div>
  47. <form enctype="multipart/form-data" action="rezize2.php" method="POST">
  48.  
  49. <input name="plik" type="file" />
  50. <input type="submit" value="Wyślij plik" />
  51. </form>
  52. </div>
  53.  
  54.  
  55. <?php
  56. //Unable to open 'tumb/orginal/13087-1.png
  57. $plik_tmp = $_FILES['plik']['tmp_name'];
  58. $plik_nazwa = $_FILES['plik']['name'];
  59. $plik_rozmiar = $_FILES['plik']['size'];
  60.  
  61. if(is_uploaded_file($plik_tmp)) {
  62.  move_uploaded_file($plik_tmp, "orginal/$plik_nazwa");
  63.  resize_pic($dir.$plik_nazwa,'450','350');
  64. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze 
  65. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!";
  66. }
  67. ?> 
  68. </body>
  69. </html>


Ten post edytował redelek 25.01.2008, 17:06:46
Go to the top of the page
+Quote Post
trike
post
Post #8





Grupa: Zarejestrowani
Postów: 82
Pomógł: 9
Dołączył: 9.01.2008

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


a czemu po uzyciu kodu z ostatniego postu tworzy mi miniaturki, ale sa czarne całe (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.09.2025 - 01:37