Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak rozpoznać czy plik jest ZIP
Forum PHP.pl > Forum > Przedszkole
webtg
Witam!

Po usilnych próbach szuakania na forum oraz w manulau nadal nic nie znalazłem.
Nie chodzi mi tutaj o rodzaj pliku, lecz o sprawdzenie dokładnie rozszeczernia, próbowałem subsrt() ale to plik tymczasowy i zwraca mi głupotki.

Ma ktos jakis pomysł ?
strife
Witam,

Piszę na szybko..
  1. <?php
  2.  
  3. $file = 'http://server.pl/file.zip';
  4. $base = basename($file);
  5. $ex = explode('.', $base);
  6. if (!$ex[1] == 'zip')
  7. {
  8. echo 'zip';
  9. }
  10. else {
  11. die();
  12. }
  13.  
  14. ?>

Jak sie pomylilem to sorki, ale o tej godzinie inaczej sie mysli tongue.gif

Pozdrawiam!
webtg
Jutro przetestuję, ale explodem tez się juz bawiłem i nic.
Może na to wszystko ma wpływ sesja która cały czas jest uruchomiona.
ale basename nie stosowałem.

Zobaczym, dzięki za szybką odpowiedź
Ociu
  1. <?php
  2. $file = &#092;"plik.zip\";
  3. $ext = substr($file, -3);
  4. if($ext == 'zip')
  5. {
  6. print 'Tiaaa ! Plik z rozszerzeniem zip.';
  7. }
  8. ?>
NuLL
Hehehee, Zaraz spadne z krzesła - a co jeśli ktoś zmieni rozszerzenie w plik wciąż będzie zip-em questionmark.gif

filetype" title="Zobacz w manualu PHP" target="_manual
nospor
null: Czytaj posty (głowne zapytanie). KOledze chodzi o rozszerzenie a typ pliku.

A tak na marginesie spojrzalem w twoj link i funkcję filetype, ale jakoś nie dojrzałem, aby mowila cos o plikach zip. Możesz wyjaśnić o co ci chodziło?
mike
  1. <?php
  2. function GetExtension( $strPath )
  3. {
  4. return strtolower( end( explode( &#092;".\", basename( $strPath ) ) ) );
  5. } 
  6. ?>

Nie wiem jak to zadziała z plikiem tymczasowym.
Lepiej bo pewniej sprawdzić typ pliku.

P.S.
Cytat(NuLL @ 2005-03-29 11:50:14)
Hehehee, Zaraz spadne z krzesła - a co jeśli ktoś zmieni rozszerzenie w plik wciąż będzie zip-em questionmark.gif

filetype" title="Zobacz w manualu PHP" target="_manual

Nie wiem o co Ci chodzi z tym filetype()
Ale poniżej to najpewniejszy sposób sprawdzenia czy plik jest zip'em :
manual/en/function.mime-content-type.php" target="_blank
NuLL
@Mike_mech - dzieki za popraweinie mnie - rzeczywiście chodziło o
mime_content_type" title="Zobacz w manualu PHP" target="_manual

@nospor - ucze ludzi pisać bezpieczne skrypty poprostu smile.gif
webtg
No i jest problem,

Niestety jest to plik tymczasowy, i zabway na ścieżce odpadają !
mime_conent_type () nie chodzi na moim serwrku, poza tym to działą tylko pod WINem sad.gif

Nie mam pojęcia jak sprawdzić czy uploadowany plik to ZIP

Może ktoś jeszcze się wykaże ?
mike
Z tego co się orientuję to mime_content_type() działa i po Win i pod innymi systemami, ale jeżeli nie to zerknij na to ( fragment jednego z komentarzy na stronie dokumentacji mime_content_type() ) :

  1. <?php
  2.  
  3. if (!function_exists('mime_content_type')) {
  4.  function mime_content_type($f) {
  5.  $f = escapeshellarg($f);
  6.  return trim( `file -bi $f);
  7.  }
  8. }
  9.  
  10. ?>
webtg
Jak pech to pech

Warning: shell_exec() has been disabled for security reasons

Że też wszyscy providerzy tak się boją . . .
mike
Cytat(webtg @ 2005-03-29 13:10:57)
(...) czy uploadowany plik to ZIP (...)

No OK, ale przecież jak uploadujesz plik to masz dane o nim w tablicy $_FILES.
Między innymi oryginalną nazwę w $_FILES['userfile']['name'].
Co oznacza, że możesz z tej nazwy odczytać sobie rozszerzenie.
webtg
No, problem rozwiązany. Wielkie dzięki za pomoc,
dla usystematyzowania zmieszczam wszystko zebrane do kupy


  1. <?php
  2. $filename=$_FILES['zip']['name']; 
  3. $ex = substr ($filename, -3);
  4. if ($ex != zip)
  5. {
  6. echo&#092;"Uploadowany plikiem nie jest plikiem ZIP\";
  7. }
  8. ?>
mike
A nie tak :
  1. <?php
  2. $filename=$_FILES['zip']['name'];
  3. $ex = substr ($filename, -3);
  4. if ($ex != 'zip' ) // <- toż to string biggrin.gif
  5. {
  6. echo&#092;"Uploadowany plikiem nie jest plikiem ZIP\";
  7. }
  8. ?>

winksmiley.jpg
webtg
Toż to racja smile.gif
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.