java如何判断文件是否为图片

java如何判断文件是否为图片,第1张

java中提供了ImageInputStream类来对文件是否为图片进行判断,示例如下:

/** 

  * 判断文件是否为图片<br> 

  * <br> 

  * @param pInput 文件名<br> 

  * @param pImgeFlag 判断具体文件类型<br> 

  * @return 检查后的结果<br>搭纳旦 

  * @throws Exception 

  */ 

public static boolean isPicture(String  pInput, 

                           String pImgeFlag) throws Exception{ 

  // 文件名称为空的场合 

  if(Check.isNull(pInput)){ 

   // 返回不和合法 

   return false 

  } 

  // 获得文件后缀名 

  String tmpName = pInput.substring(pInput.lastIndexOf(".") + 1, 

                              pInput.length()) 

  // 声明图片后缀名数组 

  String imgeArray [][] = { 

    {"bmp", "0"}, {"dib", "1"}, {"gif", "2"}, 

    知扰{"jfif", "3"}, {"jpe", "4"}, {"jpeg", "5"}, 

    {"jpg", "6"}, {"png", "7"} ,{"tif", "8"}, 

    {"tiff", "9"}, {"ico", "10"} 

  } 

  // 遍历名称茄余数组 

  for(int i = 0 i<imgeArray.lengthi++){ 

   // 判断单个类型文件的场合 

   if(! Check.isNull(pImgeFlag) 

      && imgeArray [i][0].equals(tmpName.toLowerCase()) 

   && imgeArray [i][1].equals(pImgeFlag)){ 

    return true 

   } 

   // 判断符合全部类型的场合 

   if(Check.isNull(pImgeFlag) 

      && imgeArray [i][0].equals(tmpName.toLowerCase())){ 

    return true 

   } 

  } 

  return false 

}

这样,当把一个非图片文件的扩展名改为jpg、gif或者bmp时,就能绕过限制。所以必须得通过读取文件内容来进行判搭颤断。这里提供两种实现代码。1、ImageInputStream iis = ImageIO.createImageInputStream(resFile)//resFile为需被Iterator&ltImageReader&gtiter = ImageIO.getImageReaders(iis)if (!iter.hasNext()) {//文件不是图知携败片 System.out.println(&quot此文件隐局不为图片文件&quot)}2、BufferedImage bi = ImageIO.read(resFile)if(bi == null){ System.out.println(&quot此文件不为图片文件&quot)}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12323776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存