[英]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.