проверка типа изображения php

0

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

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;

                }
Теги:
validation
image
types

2 ответа

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' ($_FILES['imagem']['type']!='image/png') || 'image/jpg'.

|| является булевым оператором, а строка 'image/jpg' преобразуется в boolean true компилятором. Таким образом, результат всего выражения всегда true.


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

  • 0
    if (($ _ FILES ['imagem'] ['type']! = 'image / png') && ($ _FILES ['imagem'] ['type']! = 'image / jpg')) {$ flag_error = правда; $ ошибок [ 'tipodeficheiro'] [0] = TRUE; }
  • 0
    Я получил это и до сих пор не работает, говорит, что файл не поддерживается: /
Показать ещё 3 комментария
0

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

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

                }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню