Java如何判断上传图片格式

  介绍

小编给大家分享一下Java如何判断上传图片格式,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

由于客户上传图片将png的图片的后缀名改为jpg,所以通过后缀名判断不行,用下面这个方法可以

,,,//判断是否是jpg格式   ,,log.info(“1——进入JPG格式判断.....“);   ,,ImageInputStream  iis =, ImageIO.createImageInputStream (file.getInputStream ());   ,,Iterator

<>强PS: Java使用文件头的类型判断上传的文件是否为图片类型

web判断文件的格式的时候,我们一般都是通过扩展名来判断,这个有点不太靠谱和安全,例如,修改文件名的后缀即可绕过判断。一般要判断是利用头文件来判断。下面是利用头文件来判断的代码:

package  com.metro.crm.util;   import  java.io.FileInputStream;   public  class 文件类型{   public 才能static  String  bytesToHexString (byte [], src), {   ,,,StringBuilder  StringBuilder =, new  StringBuilder ();   ,,,if  (src ==, null  | |, src.length  & lt;=, 0), {   ,,,,,return 零;   ,,,}   ,,,for  (int 小姐:=,0;,小姐:& lt;, src.length;,我+ +),{   ,,,,,int  v =, src(我),,,0 xff;   ,,,,,String  hv =, Integer.toHexString (v);   ,,,,,if  (hv.length (), & lt;, 2), {   ,,,,,,,stringBuilder.append (0);   ,,,,,}   ,,,,,stringBuilder.append(高压);   ,,,}   ,,,return  stringBuilder.toString ();   ,,}   ,/* *   ,,*,@param 参数   ,,*/public 才能;static  void  main (String [], args), throws  Exception  {   ,,,FileInputStream  is =, new  FileInputStream (“F: \ \ aaa.jpg");   ,,,byte [], b =, new 字节[3];   ,,,is.read (b,, 0,, b.length);   ,,,String  photo =, bytesToHexString (b);   ,,,photo =, photo.toUpperCase ();   ,,,System.out.println(“头文件是:“,+,图);   ,,,String  ooo =, TypeDict.checkType(图);   ,,,System.out.println(“后缀名是:“,+,已坏);   ,,}   }      package  com.metro.crm.util;   public  class  TypeDict  {   ,/* *   ,,常用文件的文件头如下:(以前六位为准)   ,,JPEG  (jpg),文件头:FFD8FF   ,,PNG  (png),文件头:89504 e47   ,,GIF  (gif),文件头:47494638   ,,TIFF  (tif),文件头:49492 a00   ,,Windows  Bitmap  (bmp),文件头:424 d   ,,CAD  (dwg),文件头:41433130   ,,Adobe  Photoshop  (psd),文件头:38425053   ,,Rich  Text  Format  (rtf),文件头:7 b5c727466   ,,XML  (xml),文件头:3 c3f786d6c   ,,HTML  (html),文件头:68746 d6c3e   ,,Email  [thorough 只有],(eml),文件头:44656 c69766572792d646174653a   ,,Outlook  Express  (dbx),文件头:CFAD12FEC5FD746F   ,,Outlook  (pst),文件头:2142444 e   ,,小姐一词/Excel  (xls.or.doc),文件头:D0CF11E0   ,,小姐Access  (mdb),文件头:5374616 e64617264204a   ,,WordPerfect  (wpd),文件头:FF575043   ,,Postscript  (eps.or.ps),文件头:252150532 d41646f6265   ,,Adobe  Acrobat  (pdf),文件头:255044462 d312e   ,,Quicken  (qdf),文件头:AC9EBD8F   ,,Windows  Password  (pwl),文件头:E3828596   ,,ZIP  Archive  (zip),文件头:504 b0304   ,,RAR  Archive  (rar),文件头:52617221   ,,Wave  (wav),文件头:57415645   ,,AVI  (avi),文件头:41564920   ,,Real  Audio  (ram),文件头:2 e7261fd   ,,Real  Media  (rm),文件头:2 e524d46   ,,MPEG  (mpg),文件头:000001 ba   ,,MPEG  (mpg),文件头:000001 b3   ,,Quicktime  (mov),文件头:6 d6f6f76   ,,Windows  Media  (asf),文件头:3026 b2758e66cf11   null   null   null   null   null   null   null   null   null   null   null

Java如何判断上传图片格式