Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]własna kreacja miniatur
john_doe
post 23.07.2009, 14:09:51
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witam,

robie tak: wgrywam plik na serwer do katalogu PICTURESi od razu kopiuje go do katalogu minis.
następnie chce funkcja zamienić tyle co skopiowany obrazek w katalogu minis na miniaturke.

taki mam plik uploadu
  1. <?php
  2. include('configUpload.php'); // w konfigu jest sciezka i max rozmair
  3. include('functions.php');
  4.  
  5. $fileName = $_FILES['myFile']['name'];
  6.  
  7. $fileExtension = substr($fileName, -3);
  8.  
  9. if( ! in_array( $fileExtension, $allowedFileTypes ) )
  10. {
  11.    header( 'Location: http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/') . '/' . index.'.'.php );
  12.    exit;
  13. }
  14.  
  15.  
  16. if( ! file_exists( $_SERVER['DOCUMENT_ROOT'].'/Mini/Pictures/' . $fileName ) )
  17. {
  18.    if( move_uploaded_file( $_FILES['myFile']['tmp_name'], $uploadPath . $fileName))
  19.    {
  20.        print 'Wgranie pliku zakonczone sukcesem, <a href="' . $uploadPath . $fileName . '" title="Your File">Zobacz</a>';
  21.    }else print 'Pojawil sie problem podczas wgrywania pliku na serwer. Sprobuj ponownie za chwile.';    
  22. }
  23. else {
  24.        print 'Plik o takiej nazwie juz istnieje. Zmien nazwe i spobuj ponownie';
  25.        
  26.    }    
  27.  
  28. copy( 'Pictures/' . $fileName, 'Pictures/minis/' . 'mini_' . $fileName);
  29.  
  30. makeMini('Pictures/minis/' . 'mini_ . $fileName, $fileName);
  31. ?>


plik functions.php

  1. <?php
  2. function makeMini($plik, $nazwa)
  3. {
  4.    $rozmiar = getimagesize($plik);
  5.    $szerokosc = $rozmiar[0];
  6.    $wysokosc = $rozmiar[1];
  7.    $nowa_wysokosc = 258;
  8.    $nowa_szerokosc = $szerokosc*($nowa_wysokosc / $wysokosc);
  9.    $oryginal = ImageCreateFromJPEG($nazwa);
  10.    $obrazek = ImageCreateTrueColor($nowa_szerokosc,$nowa_wysokosc);
  11.    ImageCopyResized($obrazek,$oryginal,0,0,0,0,$nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc);
  12.    ImageJPEG($obrazek, "Pictures/minis/mini1_" . $nazwa);    
  13. }
  14. ?>


gdy wgrywam plik dostaje cos takiego

Warning: imagecreatefromjpeg(1.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\Mini\functions.php on line 22

Warning: imagecopyresized(): supplied argument is not a valid Image resource in C:\wamp\www\Mini\functions.php on line 24

linia 22 to : $oryginal = ImageCreateFromJPEG($nazwa);

linia 24 to: ImageCopyResized($obrazek,$oryginal,0,0,0,0,$nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc);

Ten post edytował john_doe 23.07.2009, 14:12:03
Go to the top of the page
+Quote Post
erix
post 23.07.2009, 14:20:13
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Warning: imagecreatefromjpeg(1.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\Mini\functions.php on line 22

Czyli plik źródłowy nie istnieje/nie może zostać odczytany. Sprawdź uprawnienia i ścieżki.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
nospor
post 23.07.2009, 14:29:56
Post #3





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




ImageCreateFromJPEG($nazwa);
przeciez wg. twojego kodu $nazwa to tylko nazwa. pelna sciezka do pliku do $plik


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
john_doe
post 23.07.2009, 14:30:27
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


rzeczywiście ścieżki były do luftu.
oto kod funkcji, która działa i miniaturuje
  1. <?php
  2. function makeMini($plik, $nazwa)
  3. {
  4.    $rozmiar = getimagesize($plik);
  5.    $szerokosc = $rozmiar[0];
  6.    $wysokosc = $rozmiar[1];
  7.    $nowa_wysokosc = 258;
  8.    $nowa_szerokosc = $szerokosc*($nowa_wysokosc / $wysokosc);
  9.    $oryginal = ImageCreateFromJPEG($nazwa);
  10.    $obrazek = ImageCreateTrueColor($nowa_szerokosc,$nowa_wysokosc);
  11.    ImageCopyResized($obrazek,$oryginal,0,0,0,0,$nowa_szerokosc,$nowa_wysokosc,$szerokosc,$wysokosc);
  12.    ImageJPEG($obrazek, $nazwa);    
  13. }
  14. ?>


chciałbym to teraz tak rozwinąć bym mógł miniaturyzować gify, png. Bo ta funkcja działa tylko na jpg. Jakieś wskazówki?
Go to the top of the page
+Quote Post
bemol
post 23.07.2009, 14:35:42
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


  1. <?php
  2. $fileExtension = substr($fileName, -3);
  3. ?>


nie sprawdzaj w ten sposób rozszerzenia, bo dla .jpeg będzie peg! Poza tym łatwo jest zmienić plik .mov, .avi, .rmvb na .jpg. sprawdzaj nagłówki pliku.
w ten sposób możesz sprawdzić switchem rozszerzenie i tworzyć dla innych typów plików

mime_content_type" title="Zobacz w manualu PHP" target="_manual albo http://pl.php.net/manual/pl/ref.fileinfo.php

Ten post edytował bemol 23.07.2009, 14:40:22


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
john_doe
post 23.07.2009, 14:48:23
Post #6





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dzięki bemol, racja.
Czy podobnie robi się miniaturki dla gif i png? czy jakieś gorsze cyrki?
Go to the top of the page
+Quote Post
erix
post 23.07.2009, 15:00:52
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




O matko, a ciężko zobaczyć w manualu, że są funkcje i do tego, i do tego...? :|


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 15.07.2025 - 19:26