When uploading files, you often need to determine the file type, such as examples and documents. The common practice is to directly determine the file suffix, in order to prevent various attacks, literary and art youths also use the file header information to determine the file type.
The principle is simple: you can use the file header to directly read the first two bytes of the file.
JPEG (JPG), file header: ffd8ff
PNG (PNG), file header: 89504e47
GIF, file header: 47494638
Tiff (TIF), file header: 492.16a00
Windows Bitmap (BMP), file header: mongod
CAD (DWG), file header: 41433130
Adobe Photoshop (PSD), file header: 38425053
Rich Text Format (RTF), file header: 7b5c727466
XML (XML), file header: 3c3f786d6c
HTML (HTML), file header: 68746d6c3e
Email [thorough only] (EML), file header: 44656c69766572792d646174243a
Outlook Express (DBX), file header: cfad12fec5fd746f
Outlook (PST), file header: 2142444e
MS word/Excel (xls.or.doc), file header: d0cf11e0
MS access (MDB), file header: 5374616e64617213204a
Wordperfect (WPD), file header: ff575043
Postscript (EPS. Or. ps), file header: 252150532d41646f6265
Adobe Acrobat (PDF), file header: 255044462d312e
Quicken (qdf), file header: ac9ebd8f
Windows Password (pwl), file header: e3828596
ZIP Archive (ZIP), file header: 504b0304
RAR Archive (RAR), file header: 52617221
Wave (WAV), file header: 57415645
AVI (AVI), file header: 41564920
Real Audio (RAM), file header: 2e00001fd
Real Media (RM), file header: 2e524d46
MPEG (MPG), file header: 000001ba
MPEG (MPG), file header: 000001b3
QuickTime (mov), file header: 6d6f6f76
Windows Media (ASF), file header: 3026b2758e66cf11
MIDI (MID), file header: 4d546864