2014-12-14 3 views
0

все это работает в моей форме, но проверка изображения не работает. Мне просто нужен скрипт для проверки типа изображения. Это то, что у меня есть сейчас, но не работает, и я не понимаю, почему ..Тип изображения валидация php

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

так банально.

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 booleantrue компилятором. Таким образом, результат всего выражения всегда равен true.


Кроме того, тип MIME для изображений JPEG является image/jpeg, не image/jpg.

+0

если (($ _ FILES [ 'Imagem'] [ 'типа']! = 'Изображение/PNG') && ($ _FILES [ 'Imagem'] ['type']! = 'image/jpg')) { $ flag_error = true; $ errors ['tipodeficheiro'] [0] = true; } –

+0

Я получил это и все еще не работает, говорит, что файл не поддерживается:/ –

+0

Может быть, это должно быть 'image/jpeg' (обратите внимание на' e' в 'jpeg')? –

0

Я думаю, что это должно быть как this-

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

       } 
Смежные вопросы