简体   繁体   English

PHP映像类型验证

[英]PHP Image Type Validation


i am trying to match a image/type of a file upload in PHP for validation: 我正在尝试匹配PHP文件上传的image/type以进行验证:

<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
  $data = [
        // Other POST Variables
     'uploadimageType' => $_FILES['uploadimage']['type']
  ];
  if((strcmp($data['uploadimageType'],'image/jpeg')!=0) || (strcmp($data['uploadimageType'],'image/png')!=0) || (strcmp($data['uploadimageType'],'image/gif')!=0) ) {
     echo 'Invalid Image format';
  }else{
     echo 'Valid';
  } 
?>

The HTML used for submit: 用于提交的HTML:

<form action="<?php echo URLROOT; ?>/users/upload" method="post" enctype="multipart/form-data">
  <!-- Other Input Tags -->
  <div class="form-group">
    <label for="uploadimage">Upload Image <sup>*</sup></label>
    <input type="file" name="uploadimage" class="form-control-file <?php echo (!empty($data['uploadimage_err'])) ?  'is-invalid' : ''; ?>">
    <span class="invalid-feedback"><?php echo $data['uploadimage_err']; ?></span>
  </div>
  <!-- Submit Button -->
</form>

Now, the problem is that even if I try to upload an image(.jpg, .png, .gif) it shows Invalid Image Format . 现在的问题是,即使我尝试上传图像(.jpg,.png,.gif),它也会显示无效的图像格式 Is there anything that I am missing here because this seems to be very simple yet complicated. 我在这里有什么想念的吗,因为这似乎很简单但很复杂。 Any suggestions would help. 任何建议都会有所帮助。

Try this 尝试这个

$allowed_mime_type_arr = array('image/gif','image/jpeg','image/pjpeg','image/png','image/x-png');
$mime = get_mime_by_extension($_FILES['uploadimage']['name']);
if(in_array($mime, $allowed_mime_type_arr)){
   echo 'Valid Image format';
}else{ 
   echo 'Invalid Image format';
}

This will Works by Change if Condition. 如果有条件,这将通过更改起作用。

  $data = [
    'uploadimageType' => 'image/jpeg'
  ];
  if((strcmp($data['uploadimageType'],'image/jpeg')!=0) && (strcmp($data['uploadimageType'],'image/png')!=0) && (strcmp($data['uploadimageType'],'image/gif')!=0) ) {    
            echo 'Invalid Image format';
   }
   else {
       echo 'Valid';
   } 
if($_SERVER['REQUEST_METHOD'] == "POST") {
  $data = ['uploadimageType' => strtolower(pathinfo($_FILES['uploadimage']['name'],PATHINFO_EXTENSION))];
  $ext = array("png","jpg","jpeg");
  if(!in_array($data['uploadimageType'],$ext) ) {
    echo 'Invalid Image format';
  }else {
    echo 'Valid';
  }    
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM