Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie rodzaju pliku
Forum PHP.pl > Forum > PHP
Indeo
Czy można w jakiś sposób sprawdzić mając tylko dane binarne w bazie danych z jakiego typu plikiem mamy do czynienia? Mam w bazie pliki w postaci binarnej - jak wysłać do przeglądarki odpowiedni nagłówek jeśli nie znam wprost rodzaju pliku? Da się jakoś to wyciagnąć przez php albo wykombinowąć z poziomu bazy? Po prostu mam tylko zawartość plików nie mam nic o nich samych.
blooregard
Każdy plik zawiera nagłówek, na podstawie którego jest identyfikowany przez system operacyjny. Dla przykładu: plik .bmp dane na swój temat w 54 pierwszych bajtach. Po odczytaniu z bazy danych początku każdego z plików i analizy zawartości tych pierwszych bajtów, możesz zidentyfikować dany plik.

Tu masz przykładowy nagłowek jpg-a:
Cytat
00000000: ff d8 ff e0 00 10 4a 46 - 49 46 00 01 01 00 00 01 ......JF IF......

Jak widzisz, od 7 do 10 bajtu masz tekst JFIF - identyfikator typu pliku jpg.

I tak musisz dla wszystkich typów plików stworzyć sobie bazę/tabelkę sygnatury nagłówków, a potem odczytywac z bazy np. pierwsze 200-300 bajtów pliku i porównywać z takimi sygnaturami.
Polecam Ci stronę http://www.fileformat.info/index.htm , gdzie masz wszystkie formaty plików opisane "od podszewki", łącznie z hexadecymalnymi ich zrzutami.
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.