加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何识别文件的真实的文件类型

(2011-04-26 15:39:46)
标签:

it

分类: IT随笔
java中,借助外部jar包,处理文件上传是一个非常简单的事,这里我用的是cos插件,这个插件非常简单。我们要说的是,在我们处理文件上传是我们可以知道其后缀,但我们需要清楚的是,文件后缀并不能代表真实的文件类型,如我们要上传的是图片文件,如果客户端将一个exe文件改为gif后缀的文件,它照样可以上传上去,这样不论对系统的严谨性还是从界面的美观性来讲都是一个不好的处理方式,在这里,我介绍两种处理真实文件名的插件:jmimemagic-0.1.0.jar与mime-util-2.1.3.jar,不管你改后缀名为什么,它都能识别出来。下面是其执行代码:
   
    public String getFileRealType(File file){
        Magic parser = new Magic() ; 
        MagicMatch match = null;
        try {
            match = parser.getMagicMatch(new File("E://Upload/WebRoot/upload"+file.getName()),true);
        } catch (MagicParseException e) {
            e.printStackTrace();
        } catch (MagicMatchNotFoundException e) {
            e.printStackTrace();
        } catch (MagicException e) {
            e.printStackTrace();
       
        return match.getMimeType();
    }
   
   
    public String getFileRealType2(File file){
         MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector"); 
        Collection mimeTypes = MimeUtil.getMimeTypes(file); 
        return mimeTypes.toString();
    }

第一个方法利用jmimemagic获取,第二个方法是利用mime-util获取

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有