从Ultra-edit-32中提取出来的常用文件文件头

在开发过程中长会用到,通过文件头来判断该文件究竟是什么文件类型,【仅仅通过后缀名判断,并不安全准确】整理一下常用文件文件头。

从Ultra-edit-32中提取:

后缀名文件头
jpg   FFD8FF
png   89504E47
bmp   424D
gif   47494638
pdf   255044462D312E
zip   504B0304
rar   52617221
doc   D0CF11E0
xlsx  52617221
jpeg  FFD8FF
Docx  504B0304
apk   504B0304
tif   49492A00 
dwg   41433130
psd   38425053
rtf   7B5C727466 
xml   3C3F786D6C 
html  68746D6C3E 
eml   44656C69766572792D646174653A 
dbx   CFAD12FEC5FD746F 
pst   2142444E   
mdb   5374616E64617264204A 
wpd   FF575043 
eps/ps252150532D41646F6265 
qdf   AC9EBD8F 
pwl   E3828596
rar   52617221
wav   57415645
avi   41564920
ram   2E7261FD 
rm    2E524D46 
mpg   000001BA 
mpg   000001B3 
mov   6D6F6F76 
asf   3026B2758E66CF11 
mid   4D546864

ppt

D0CF11E0
pptx504B0304

使用方式:

  简单来说,就是当我们上传一个文件的时候,后台会去取出上传文件的文件头与规定格式文件的标准文件头作比较,来判断上传的是否为真实要求的文件。

java:

   String extHead = uf.getFileHead();
        if (null == extHead)
        {
            throw new CtrlException(ErrorCode.IMG_UPLOAD_TYPE_ERR);
        }
        StringBuilder builder = new StringBuilder();
        String hv;
        int i = 0;
        for (byte aSrc : filebyt)
        {
            if (i++ == extHead.length() / 2)
            {
                break;
            }
            // 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
            hv = Integer.toHexString(aSrc & 0xFF).toUpperCase();
            if (hv.length() < 2)
            {
                builder.append(0);
            }
            builder.append(hv);
        }
        if (!extHead.equals(builder.toString()))
        {
            throw new CtrlException(ErrorCode.IMG_UPLOAD_TYPE_ERR);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值