誊抄自原来的笔记
背景
有时我们需要对上传的文件进行判断文件类型,一般我们可以通过扩展名来判断文件属于什么类型,但是当文件没有扩展名或者一张图片改成了txt,我们通过扩展名的方式来判断是不是就不太合适了呢,其实我们可以根据文件中的文件头来判断实际文件类型
一,新建文件枚举类(文件类型与文件头之间的映射关系)
package cn.test.enums;
/**
* 用于判断上传文件的真实文件类型的枚举类
*/
public enum FileType {
/**
* JEPG.
*/
JPEG("FFD8FF"),
/**
* PNG.
*/
PNG("89504E47"),
/**
* GIF.
*/
GIF("47494638"),
/**
* TIFF.
*/
TIFF("49492A00"),
/**
* Windows Bitmap.
*/
BMP("424D"),
/**
* CAD.
*/
DWG("41433130"),
/**
* Adobe Photoshop.
*/
PSD("38425053"),
/**
* Rich Text Format.
*/
RTF("7B5C727466"),
/**
* XML.
*/
XML("3C3F786D6C"),
/**
* HTML.
*/
HTML("68746D6C3E"),
/**
* Email [thorough only].
*/
EML("44656C69766572792D646174653A"),
/**
* Outlook Express.
*/
DBX("CFAD12FEC5FD746F"),
/**
* Outlook (pst).
*/
PST("2142444E"),
/**
* MS Word/Excel.
*/
XLS_DOC("D0CF11E0"),
/**
* MS Access.
*/
MDB("53746