Maison >développement back-end >tutoriel php >Introduction à la méthode de détermination du format d'image du téléchargement de fichier en PHP

Introduction à la méthode de détermination du format d'image du téléchargement de fichier en PHP

黄舟
黄舟original
2017-10-09 09:24:092767parcourir

Cet article présente principalement les informations pertinentes sur l'explication détaillée de l'exemple de PHP jugeant le format d'image de téléchargement de fichier. J'espère que cet article pourra aider tout le monde à mettre en œuvre cette méthode. Il est très utile pour référence. it

Explication détaillée de l'exemple de php jugeant le format d'image de téléchargement de fichier

Juger le type d'image de fichier,


 $type  = $_FILES['image']['tmp_name'];//文件名
 //$type  = $this->getImagetype( $type ); 
 $filetype = ['jpg', 'jpeg', 'gif', 'bmp', 'png'];
 if (! in_array($type, $filetype))
 { 
  return "不是图片类型";
 }

Comme ci-dessus, si l'utilisateur modifie le suffixe du fichier en png, jpeg, etc., il ne peut pas être satisfait. La solution après avoir vérifié les informations est d'utiliser les informations du flux binaire du fichier pour juger si cela se produit. rencontrez ce genre de problème, autant essayer :


 //*判断图片上传格式是否为图片 return返回文件后缀
 public function getImagetype($filename)
 {
  $file = fopen($filename, 'rb');
  $bin = fread($file, 2); //只读2字节
  fclose($file);
  $strInfo = @unpack('C2chars', $bin);
  $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
  // dd($typeCode);
  $fileType = '';
  switch ($typeCode) {
   case 255216:
    $fileType = 'jpg';
    break;
   case 7173:
    $fileType = 'gif';
    break;
   case 6677:
    $fileType = 'bmp';
    break;
   case 13780:
    $fileType = 'png';
    break;
   default:
    $fileType = '只能上传图片类型格式';
  }
  // if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
  // if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';
  return $fileType;
 }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn