ограничения типа загрузки php-файлов

0

У меня проблема с расширениями файлов в php.

if ($_FILES['file']['type'] != 'image/png' || 'image/jpg') {
                   echo "wrong type";
                   exit;
     }

это не позволяет загружать любой тип файла

if ($_FILES['file']['type'] != ('image/png' || 'image/jpg')) {
                   echo "wrong type";
                   exit;
     }

это позволяет загружать любой тип файла.

Что случилось?

  • 0
    Какая разница?
  • 0
    Булева логика! = Английская грамматика. Сравните вашу переменную явно, дважды: $_FILES['file']['type'] != 'image/png' || $_FILES['file']['type'] != 'image/jpg'
Показать ещё 1 комментарий
Теги:
file-upload
size

1 ответ

0

Ваше условное утверждение неверно. Он должен выглядеть так:

if (($_FILES['file']['type'] != 'image/png') || 
       ($_FILES['file']['type'] != 'image/jpg')) {
                   echo "wrong type";
                   exit;
     }

Ваш первый отрезанный всегда разрешает true из-за || 'image/jpg' || 'image/jpg' всегда истинно.

Второй фрагмент разрешает ('image/png' || 'image/jpg') значение true everytime, которое НЕ равно $_FILES['file']['type']

  • 0
    это не работает, когда я загружаю jpg файл, он показывает «неправильный тип»;
  • 0
    логика верна, проверьте, что хранится в вашей переменной $_FILES . Может быть, вам нужно также проверить JPEG и JPG?
Показать ещё 4 комментария

Ещё вопросы

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