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 :
发布评论