Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak rozpoznać czy plik jest ZIP
webtg
post 29.03.2005, 00:33:14
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 28.12.2004
Skąd: Tarnowskie Góry

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


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ł ?
Go to the top of the page
+Quote Post
strife
post 29.03.2005, 01:05:35
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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!


--------------------
Go to the top of the page
+Quote Post
webtg
post 29.03.2005, 01:10:38
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 28.12.2004
Skąd: Tarnowskie Góry

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


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ź
Go to the top of the page
+Quote Post
Ociu
post 29.03.2005, 07:24:56
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  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. ?>
Go to the top of the page
+Quote Post
NuLL
post 29.03.2005, 11:50:14
Post #5





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


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


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
nospor
post 29.03.2005, 11:55:57
Post #6





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




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?

Ten post edytował nospor 29.03.2005, 11:56:13


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

"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
mike
post 29.03.2005, 12:10:10
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


  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
Go to the top of the page
+Quote Post
NuLL
post 29.03.2005, 12:21:52
Post #8





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


@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


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
webtg
post 29.03.2005, 13:10:57
Post #9





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 28.12.2004
Skąd: Tarnowskie Góry

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


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 ?
Go to the top of the page
+Quote Post
mike
post 29.03.2005, 13:26:03
Post #10





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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. ?>
Go to the top of the page
+Quote Post
webtg
post 29.03.2005, 14:06:45
Post #11





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 28.12.2004
Skąd: Tarnowskie Góry

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


Jak pech to pech

Warning: shell_exec() has been disabled for security reasons

Że też wszyscy providerzy tak się boją . . .
Go to the top of the page
+Quote Post
mike
post 29.03.2005, 14:27:50
Post #12





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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.
Go to the top of the page
+Quote Post
webtg
post 29.03.2005, 22:45:12
Post #13





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 28.12.2004
Skąd: Tarnowskie Góry

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


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. ?>
Go to the top of the page
+Quote Post
mike
post 29.03.2005, 23:03:36
Post #14





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


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
Go to the top of the page
+Quote Post
webtg
post 29.03.2005, 23:12:48
Post #15





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 28.12.2004
Skąd: Tarnowskie Góry

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


Toż to racja smile.gif
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 - 21:51