Задать вопрос

Вывод ошибки размера изображения через php, если размер картинки больше 5 мегабайт, как проверить?

Через js + ajax, проверяю поля на заполненность в форме и вывожу ошибку с php в валидацию.

Пример, так я проверяю выбрана ли фотография или нет:
if (empty($_FILES['images']['name'][0])) {
throw new Exception('Выберите фото вид спереди.');
}


А как мне проверить размер фотографии, допустим если она больше 5 мегабайт и вывести текст, мол фотография слишком много весит.

Пытался чет замутить, но такой пример не подошел.
$app_config_max_size = 1000000;
$max_size = $app_config_max_size;
if ($_FILES['images']['name'][0]['size'] > $max_size) {
throw new Exception('limit exceeded');
}
  • Вопрос задан
  • 380 просмотров
Подписаться 4 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@artem-dainov
Php, java, js. Boot spring, jquery, git
Никогда не доверяйте тому, что пользователь вам присылает. Знаю, что $_FILES можно подменить.
Есть такая функция, в php, filesize()
Используйте её для проверки, что-то подобное.

<?php
$max_size  = 1024*1024*5; // Один килобайт имеет 1024 байт. Их умножаем и получаем мегабайт. Далее умножаем на пять.
$tmp_size = filesize($_FILES['file_img']['tmp_name'][0]);
if ($tmp_size>$max_size) {
 echo "Ошибка, ваш файл привышает 5 мб"; exit();
}
?>


Как-то так. И еще один момент. Если вы позволяете другим пользователям загружать картинки на сайт, то это не последняя проверка с размером файла. Еще нужно проверять, не вредна ли картинка.
Ответ написан
Комментировать
ws17
@ws17 Автор вопроса
Извиняюсь, нашел решение:

$maxFileSize = 5 * 10e6; // = 5 000 000 bytes = 5MB
        if ($_FILES['images']['size'][0] > $maxFileSize) {
          throw new Exception('Максимальный размер изображения не должен превышать 5 мегабайт, ваша фотография вести больше 5 мегабайт.');
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы