![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czy można inaczej niż getimagesize sprawdzić typ pliku? Mam skrypt, który sprawdza typy plików i później coś z nimi robi. Ale plików jest dużo i zależy mi na szybkości. A getimagesize sprawdza nie tylko typ. Poza tym działa dla obrazków a dla pdf już nie. Od razu mówię, że nie chce sprawdzać po rozszerzeniach, bo nie zawsze je mam.
pozdro |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Najpewniejsza z dostępnych metod. Cytat A getimagesize sprawdza nie tylko typ. Różnica wynosi ułamki sekund; większość popularnych formatów (GIF/PNG/BMP) ma zapisane wymiary w nagłówku, wystarczy odczytać wartość z odpowiedniego offsetu. W przypadku JPEG jest ciut trudniej, ale również różnica będzie minimalna. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
erix jest problem. Mój hosting nie obsługuje tych funkcji - są wyłączone. Na razie nie mogę go zmienić. Czy jest inna metoda?
I getimagesize nie sprawdza plików pdf a to dla mnie bardzo ważne. pozdro |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat erix jest problem. Mój hosting nie obsługuje tych funkcji - są wyłączone. Na razie nie mogę go zmienić. Najlepiej zmienić. Gdzie exec wyłączone = admini albo są leniwi, albo niekompetentni. Cytat Czy jest inna metoda? Teoretycznie tak. Możesz spróbować tego rozszerzenia: http://pl.php.net/manual/pl/fileinfo.setup.php A jeśli jesteś ciut bardziej zdesperowany i nie ma tego PECL - mime_content_type - funkcja zaniechana, ale niektóre serwery ją mają. Jeśli poziom Twojej desperacji sięga zenitu i wszystko inne zawodzi: http://filext.com/file-extension/pdf Masz ramkę identifying characters, co w przypadku PDF wygląda: Kod Hex: 25 50 44 46 2D 31 2E ASCII: %PDF-1. Otwierasz rzekomy PDF do odczytu, sprawdzasz te 7 pierwszych bajtów, czy się zgadzają ze wzorcem. Pozostałe formaty - adekwatnie, opisów MIME szukasz albo na stronie typu filext.com, albo analizujesz mime.magic i implementujesz sprawdzanie każdego z osobna. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@marcio:
Cytat Ale plików jest dużo i zależy mi na szybkości. Mozna wiec podejrzewac iż nie robi tego przy uploadzie (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Sorki nie wyczytalem wszystkiego.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzięki, jak sprawdzę, to napisze jak to wychodzi w praktyce.
pozdro |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Cytat Jeśli poziom Twojej desperacji sięga zenitu i wszystko inne zawodzi: http://filext.com/file-extension/pdf Niech to będzie jakaś prezentacja lub coś innego microshitu, to serwer na parę minut zawiesi. Odradzam. Cytat A jeśli jesteś ciut bardziej zdesperowany i nie ma tego PECL - mime_content_type - funkcja zaniechana, ale niektóre serwery ją mają. mime_content_type - ja bym też się do tego przychylił Albo w najłatwiejszy sposób sprawdzić rozszerzenie pliku, gorzej jeżeli nie posiada... |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Niech to będzie jakaś prezentacja lub coś innego microshitu, to serwer na parę minut zawiesi. Odradzam. Jeśli odczyta kilka pierwszych bajtów pliku? To mnie rozbawiłeś. (IMG:style_emoticons/default/winksmiley.jpg) Cytat Albo w najłatwiejszy sposób sprawdzić rozszerzenie pliku, gorzej jeżeli nie posiada... Najgorszy z możliwych. Poza tym, autor wyraźnie napisał, że nie zawsze jest rozszerzenie. O możliwości podstawienia innej zawartości nie wspomnę. Cytat mime_content_type - ja bym też się do tego przychylił Od PHP 5.3 jest wycofywane, poza tym - funkcja oznaczona jako deprecated. Przestań nabijać posty, już któryś wątek z Twoimi wypowiedziami oglądam i niewiele nowego wnoszą do dyskusji. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzanie po rozszerzaniu odpada, to w ogóle chory pomysł. Pomijając fakt, że nie zawsze je mam, to np skutki obrabiania pliku pdf jak obrazka mogą być dziwne (IMG:style_emoticons/default/smile.gif) O bezpieczeństwie nawet nie myślałem, ale pewnie erix ma racje.
Ale do rzeczy: 1 finfo_file - mój hosting nie oferuje, ale sprawdziłem u siebie. Efekty bardzo pozytywne. Wyniki prawie zawsze są dobre, wyjątkiem są pliki pdf typu portfolio z najnowszego acrobat - czasami są pomyłki nie wiem od czego to zależy. 2 mime_content_type - tutaj błędów wyraźnie więcej, a poza tym to funkcja mało przyszłościowa. 3 najlepsze rozwiązanie to zmiana serwera na taki który oferuje pierwsze rozwiązanie. dzięki again pozdro |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 16:25 |