Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Spr. czy w folderze są jakieś zdjęcia.
Forum PHP.pl > Forum > Przedszkole
.Wojtek
Witam

Szukałem informacji w Internecie jak sprawdzić czy w folderze są jakiekolwiek pliki o danym rozszerzeniu, np. zdjęcia o rozszerzeniach *.jpg, *.gif, itp ale nie znalazłem żadnego info.

Nie bardzo wiem jak do tego się zabrać. Pomożecie?

Pozdrawiam!
Berg
glob. Pamiętaj tylko że takim plikom nie należy ufać - to że plik ma rozszerzenie jpg nie oznacza że jest plikiem graficznym winksmiley.jpg
.Wojtek
Dzięki.

Jakie są niebezpieczeństwa wgrywania plików z zewnątrz, jeżeli chodzi o same pliki (ich zawartość)? Np. zdjęcie może być wirusem czy co? ;>
Berg
Zdjęcie może być chociażby skryptem php, ogólnie większość serwerów jest przed tym zabezpieczona i dosyć ciężko wykonać taki atak ale lepiej się zabezpieczyć smile.gif Gdzieś na forum masz dosyć długi temat o zabezpieczeniach związanych z przesyłaniem zdjęć na serwer.
.Wojtek
Mam problem ze skryptem, który napisałem. Ogólnie skrypt działa ale dziwnie się zachowuje w pętli. Skrypt ma za zadanie pobierać nazwę folderu z tabeli i następnie używając tej nazwy folderu, sprawdzić czy w tych folderach są jakieś zdjęcia.

Tak wygląda kod:

  1. $opis_trasy = $kolumna[1] .'/';
  2.  
  3. $lista = glob("galeria/". $kolumna[2] ."/". $opis_trasy ."*.jpg");
  4. foreach ($lista as $plik_opis_trasy_foreach)
  5. $sprawdz = file_exists($plik_opis_trasy_foreach);
  6.  
  7. if (!$sprawdz)
  8. {
  9. echo($sprawdz. $tab ."Nie ma plikow $plik_opis_trasy_foreach<br />");
  10. }
  11. else
  12. {
  13. echo($sprawdz. $tab ."Plik $plik_opis_trasy_foreach istnieje<br />");
  14. }


i wyświetla mi takie coś:

Cytat
Nie ma plikow
Nie ma plikow
Nie ma plikow
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
1 Plik galeria/2009/opis_trasy_15/02.05.2009-1146.jpg istnieje
1 Plik galeria/2009/opis_trasy_15/02.05.2009-1146.jpg istnieje
1 Plik galeria/2009/opis_trasy_15/02.05.2009-1146.jpg istnieje
1 Plik galeria/2009/opis_trasy_15/02.05.2009-1146.jpg istnieje


Jest to wynik iteracji pętli. Mam 18 opisów wycieczek czyli 18 folderów. W 4 i 15 folderze są zdjęcia i skrypt je odnajduje, jednak nie wiem czemu "pamięta", że odnalazł w poprzednim folderze zdjęcia i zwraca TRUE do końca pętli, z tym, że jeżeli w innym folderze są jakieś zdjęcia (tutaj w 15'tym), to je odnajduje i wyświetla ostatnie z folderu.

Chciałbym uzyskać taki efekt:

Cytat
Nie ma plikow
Nie ma plikow
Nie ma plikow
1 Plik galeria/2009/opis_trasy_4/01.05.2009-15.jpg istnieje
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
Nie ma plikow
1 Plik galeria/2009/opis_trasy_15/02.05.2009-1146.jpg istnieje
Nie ma plikow
Nie ma plikow
Nie ma plikow
zegarek84
Cytat(.Wojtek @ 24.09.2009, 10:15:40 ) *
Mam problem ze skryptem, który napisałem. Ogólnie skrypt działa ale dziwnie się zachowuje w pętli.
.....
Chciałbym uzyskać taki efekt:....

wynik masz jak najbardziej poprawny gdyż glob zwraca dopasowanie do wyrażenia - taki efekt jak chcesz uzyskać będziesz miał gdy przejrzysz wszystkie pliki czyli bez rozszerzenia (ale musiałbyś osobno sprawdzać winksmiley.jpg) - swoją drogą nie musiałeś sprawdzać czy plik istnieje skoro użyłeś glob winksmiley.jpg - analogicznie możesz skorzystać z funkcji readdir - jednak ona zwróciła by Ci zawartość całego katalogu - nie tylko obrazków...

co do pierwszego pytania raczej zainteresuję Cię zestaw funkcji aby nie sprawdzać typu pliku po rozszerzeniu (opisów funkcji szukaj w pl.php.net - manual php - oraz potrzebne funkcje nieraz znajdziesz w odpowiednich działach - warto czasem tam coś poszukać a potem kombinować - niestety nie wszystkie funkcje są z polskimi opisami ale jeśli będziesz próbował czytać po angielsku to potem będziesz rozumiał po angielsku winksmiley.jpg):
exif_imagetype
image_type_to_mime_type
  1. image_type_to_mime_type(exif_imagetype($file))

getimagesize - zwraca nie tylko wymiary obrazka ale także typ mime - ale przy okazji normalka że coś jest nie tak jak wymiar któryś równa się 0 winksmiley.jpg

a o więcej to dokładniej musiałbyś sprecyzować pytanie - gotowca raczej nie dam a będę naprowadzał - prędzej zapamiętasz gdzie szukać
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.