Проверка типа изображения Переполнение стека

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

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;

}

0

Решение

так тривиально

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',

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


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

2

Другие решения

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

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

}
0

По вопросам рекламы [email protected]