java 文件上传类型_java文件上传,自动判断文件类型

public final classFileTypeJudge {/*** Constructor*/

privateFileTypeJudge() {

}/*** 将文件头转换成16进制字符串

*

*@param原生byte

*@return16进制字符串*/

private static String bytesToHexString(byte[] src) {

StringBuilder stringBuilder= newStringBuilder();if (src == null || src.length <= 0) {return null;

}for (int i = 0; i < src.length; i++) {int v = src[i] & 0xFF;

String hv=Integer.toHexString(v);if (hv.length() < 2) {

stringBuilder.append(0);

}

stringBuilder.append(hv);

}returnstringBuilder.toString();

}/*** 得到文件头

*

*@paramfilePath

* 文件路径

*@return文件头

*@throwsIOException*/

private static String getFileContent(InputStream is) throwsIOException {byte[] b = new byte[28];

InputStream inputStream= null;try{

is.read(b,0, 28);

}catch(IOException e) {

e.printStackTrace();throwe;

}finally{if (inputStream != null) {try{

inputStream.close();

}catch(IOException e) {

e.printStackTrace();throwe;

}

}

}returnbytesToHexString(b);

}/*** 判断文件类型

*

*@paramfilePath

* 文件路径

*@return文件类型*/

public static FileType getType(InputStream is) throwsIOException {

String fileHead=getFileContent(is);if (fileHead == null || fileHead.length() == 0) {return null;

}

fileHead=fileHead.toUpperCase();

FileType[] fileTypes=FileType.values();for(FileType type : fileTypes) {if(fileHead.startsWith(type.getValue())) {returntype;

}

}return null;

}/***

*@paramvalue 表示文件类型

*@return1 表示图片,2 表示文档,3 表示视频,4 表示种子,5 表示音乐,6 表示其它

*@return

*/

public staticInteger isFileType(FileType value) {

Integer type= 6;//其他//图片

FileType[] pics ={ FileType.JPEG, FileType.PNG, FileType.GIF, FileType.TIFF, FileType.BMP, FileType.DWG, FileType.PSD };

FileType[] docs={ FileType.RTF, FileType.XML, FileType.HTML, FileType.CSS, FileType.JS, FileType.EML, FileType.DBX, FileType.PST, FileType.XLS_DOC, FileType.XLSX_DOCX, FileType.VSD,

FileType.MDB, FileType.WPS, FileType.WPD, FileType.EPS, FileType.PDF, FileType.QDF, FileType.PWL, FileType.ZIP, FileType.RAR, FileType.JSP, FileType.JAVA, FileType.CLASS,

FileType.JAR, FileType.MF, FileType.EXE, FileType.CHM };

FileType[] videos={ FileType.AVI, FileType.RAM, FileType.RM, FileType.MPG, FileType.MOV, FileType.ASF, FileType.MP4, FileType.FLV, FileType.MID };

FileType[] tottents={ FileType.TORRENT };

FileType[] audios={ FileType.WAV, FileType.MP3 };

FileType[] others={};//图片

for(FileType fileType : pics) {if(fileType.equals(value)) {

type= 1;

}

}//文档

for(FileType fileType : docs) {if(fileType.equals(value)) {

type= 2;

}

}//视频

for(FileType fileType : videos) {if(fileType.equals(value)) {

type= 3;

}

}//种子

for(FileType fileType : tottents) {if(fileType.equals(value)) {

type= 4;

}

}//音乐

for(FileType fileType : audios) {if(fileType.equals(value)) {

type= 5;

}

}returntype;

}public static void main(String args[]) throwsException {

System.out.println(

FileTypeJudge.isFileType(

FileTypeJudge.getType(newFileInputStream(new File("C:\\Users\\ituser1\\Desktop\\123.pptx")))));for(FileType type : FileType.values()) {

System.out.print(type+ "\t");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值