Ошибка в типе файла - PullRequest
       3

Ошибка в типе файла

0 голосов
/ 14 августа 2011

Вот мой код

if ($_FILES['foto']['size'] > 200000) die ('file too big');
if($_FILES['foto']['type'] !== "image/pjpeg" ||
$_FILES['foto']['type'] !=="image/jpeg" || $_FILES['foto']['type']
!=="image/gif")  die ('file not allowed!');

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

Интересно, где ошибки.

Спасибо

== обновить === вар дамп строка (10) "image / jpeg"

Ответы [ 3 ]

1 голос
/ 14 августа 2011

Это противоречие (всегда ложно):

$_FILES['foto']['type'] !== "image/pjpeg" ||
$_FILES['foto']['type'] !== "image/jpeg" || 
$_FILES['foto']['type'] !== "image/gif"

Так как для всего утверждения верно $_FILES['foto']['type'] Должно быть равно "image / pjpeg", "image / jpeg", и"image / gif" одновременно.

Вы хотите использовать && вместо ||, поэтому вы получите:

$_FILES['foto']['type'] !== "image/pjpeg" &&
$_FILES['foto']['type'] !== "image/jpeg" &&
$_FILES['foto']['type'] !== "image/gif"
0 голосов
/ 14 августа 2011

Не могу понять, как сделать многострочное редактирование моего комментария:

if ($_FILES['foto']['size'] > 200000) die ('file too big');
if($_FILES['foto']['type'] !== "image/pjpeg" ||
$_FILES['foto']['type'] !=="image/jpeg" || $_FILES['foto']['type']
!=="image/gif")  die ('file not allowed!');

Может быть, попробовать это:

if ($_FILES['foto']['size'] > 200000) die ('file too big');
$file_types = array("image/pjpeg", "image/jpeg", "image/"gif");
if(!in_array($_FILES['foto']['type'],$file_types)) die ('not allowed');
0 голосов
/ 14 августа 2011

Вы должны регистрировать $ _FILES ['foto'] ['size'] и $ _FILES ['foto'] ['type']. Это, по крайней мере, даст вам знать, что используется во время ваших сравнений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...