读书人

怎么判断下传的图片是否是正真的图片

发布时间: 2013-02-24 17:58:56 作者: rapoo

如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
Java代码:

  1. final String JPG = "ffd8ffe0";//魔幻数字
  2. final char[] HEX = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
  3. InputStream in = ClassLoader.getSystemClassLoader().getResourceAsStream("1.jpg");
  4. int len = JPG.length()/2 + JPG.length()%2;
  5. byte[] bs = new byte[len];
  6. if( in.read(bs) == len ){
  7. StringBuilder sb = new StringBuilder();
  8. for(byte i=0;i<bs.length;i++){
  9. int high = bs[i]>>>4&0xF;
  10. int low = bs[i]&0xF;
  11. sb.append(HEX[high]).append(HEX[low]);
  12. }
  13. System.out.println(JPG.startsWith(JPG));
  14. }
  15. in.close();

原文参考自站长中心:http://www.software8.co/wzjs/java/2993.html

几种常规图片格式的“魔幻数字”File typeTypical extensionHex digits xx = variableBitmap format.bmp42 4dGIF format.gif47 49 46 38JPEG File Interchange Format.jpgff d8 ff e0PNG format.png89 50 4e 47

读书人网 >编程

热点推荐