介绍
小编给大家分享一下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 nullJava如何判断上传图片格式