如何检测 图片文件和视频文件

如何检测 图片文件和视频文件,第1张

      如何检测一个文件是否属于图片和视频,这是一个比较简单的判断,我们经过怕段得到一盒BOOL型的返回值,根据返回YES或者NO进行相应的 *** 作。

具体的 *** 作方法就是通过文件名来判断,返回一个BOOL值。

+ (BOOL)isImageFile:(NSString *)filename

{

return [filename hasSuffix:@".jpg"] || [filename hasSuffix:@".png"] || [filename hasSuffix:@".JPEG"] || [filename hasSuffix:@".JPG"] || [filename hasSuffix:@".PNG"]

}

+ (BOOL)isVideoFile:(NSString *)filename

{

return [filename hasSuffix:@".mov"] || [filename hasSuffix:@".mp4"] || [filename hasSuffix:@".MOV"] || [filename hasSuffix:@".MP4"]

}

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/12091698.html

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

发表评论

登录后才能评论

评论列表(0条)

保存