2023年11月25日发(作者:)

Java获取⽂件的真实类型,修改后缀名也能识别出来

⽬录

前⾔

今天在做⽂件上传下载的功能,前端需要我把⽂件转成base64编码给她。但是发现Java base64转码会缺失data数据,这样也就⽆法识

别该⽂件是什么类型的,于是想写个⼯具类获取⽂件类型,追加上去。开始是想根据⽂件后缀名判断的,但这样要是故意修改⽂件后缀就⽆

法准确判断了。在咨询⼀番度娘后,决定采⽤读取⽂件的⼗六进制⽂件头来判断⽂件的真正类型。

提⽰:以下是本篇⽂章正⽂内容,下⾯内容仅供个⼈学习记录,欢迎评论交流学习

⼀、如何获取真实⽂件格式?

* CAD.

* Quicken.

* @param value

*/

private FileType(String value) {

= value;

}

public String getValue() {

return value;

}

public void setValue(String value) {

= value;

}

}

2.新建GetFileTypeUtil⼯具类,获取⽂件格式

代码如下(⽰例):

import putStream;

import ption;

import tream;

/**

* @description 判断⽂件类型⼯具类

* @author 13192

*/

public class GetFileTypeUtil {

/**

* @description 第⼀步:获取⽂件输⼊流

/**

* @description 第⼆步:将⽂件头转换成16进制字符串

* @param

* @return 16进制字符串

*/

private static String bytesToHexString(byte[] src){

StringBuilder stringBuilder = new StringBuilder();

if (src == null || <= 0) {

return null;

}

for (int i = 0; i < ; i++) {

int v = src[i] & 0xFF;

String hv = tring(v);

if (() < 2) {

import putStream;

import tFoundException;

import ption;

import p;

/**

* @author : MasterWei

* @date : 2020-12-10 21:53

* @description :

* @params :

* @return :