图像类型验证php

时间:2014-12-14 21:07:58

标签: php image validation types

它全部以我的形式工作,但图像验证不起作用。我只想要一个用于图像类型验证的脚本。这就是我现在所拥有但不起作用,我不明白为什么......

enter code here

            if( $_FILES['imagem']['error'] > 0){
                $flag_error=true;        
                $errors['imagens'][0]=true;
            }

            if ($_FILES["imagem"]["size"] > 10000000) {
                $flag_error=true;        
                $errors['tamanhoimagem'][0]=true;
            }

            if($_FILES['imagem']['type']!='image/png' || 'image/jpg') {
                $flag_error=true;        
                $errors['tipodeficheiro'][0]=true;

                }

2 个答案:

答案 0 :(得分:2)

如此微不足道。

if($_FILES['imagem']['type'] !== 'image/png' && $_FILES['imagem']['type'] !== 'image/jpeg')

或更好:

if(!in_array($_FILES['imagem']['type'], array('image/png', 'image/jpeg')))

您的代码不起作用,因为表达式被评估为($_FILES['imagem']['type']!='image/png') || 'image/jpg'

||boolean operator,编译器的字符串'image/jpg'converted to boolean true。因此,整个表达式的结果总是true


此外,JPEG图像的mime类型为image/jpeg,而不是image/jpg

答案 1 :(得分:0)

我认为它应该是这样的 -

if(($_FILES['imagem']['type'] != 'image/png') && ($_FILES['imagem']['type'] !=  'image/jpg')) {
                $flag_error=true;        
                $errors['tipodeficheiro'][0]=true;

                }