通过文件的后缀来判断文件类型是不行的,比如我把一个文本文件改成xx.jpg文件,这样通过后缀在进步判断的文件的类型还是image/jpeg的,还能上传的所以判断失误的,其实对于这种的判断在struts2中已经实现判断的,即时你改了后缀也上传不上去,struts2中的采用的是配置文件的形式去实现的,具体实现我就不详细说了,大体的是它把需要的参数通过配置文件传给struts2的上传拦截器,我也看过其内部代码,处理很麻烦,我是菜鸟所以没心情看那摩复杂的代码,再说那样的代码,我们的项目也不可能用。    我的需求是不用配置文件来实现文件类型的判断。我也写了方法实现了上传的对上面的问题的判断,但是缺乏权威性,在项目中难以应用,所以很纠结!!!!以下是代码 大虾们给看看 提下意见
/**
* 该方法用于判断jpg图片格式的文件类型
* @param hifile 上传的文件
* @return true是上传的jpg类型的图片 false侧不是上传的jpg图片
*/
public static boolean IsAllowedExtension(File hifile){
FileInputStream in = null;
try {
in = new FileInputStream(hifile);
byte[] arr = new byte[3] ;//读取上传文件的前3位二进制
byte[] arr1 = new byte[]{-1, -40, -1};//jpg图片的二进制前3位
in.read(arr);
boolean flag = true;
//对于上的文件进行文件的前3位的二进制的对比进行判断
for(int i =0; i<arr1.length; i++){
if(arr[i]!=arr1[i]){
flag = false;
}
}
if(!flag){
return false;
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(in!=null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return true;}