Узнать вес загружаемой картинки - php

145
12 ноября 2021, 08:20

Загружаю через это:

<?php
$icon = $_POST['img'];
$way = $_POST['way'];
if (preg_match('/^data:image\/(\w+);base64,/', $icon, $type)) {
    $icon = substr($icon, strpos($icon, ',') + 1);
    $type = strtolower($type[1]);
    if (!in_array($type, [ 'jpg', 'jpeg', 'gif', 'png' ])) {
        die('Invalid image type');
    }
    $icon = base64_decode($icon);
    if ($icon === false) {
        die('base64_decode failed');
    }
} else {
    die('Did not match data URI with image data');
}
$way = "{$way}.{$type}";
file_put_contents($way, $icon);
echo "success {$way}";
?>

Чтобы пользователи не загружали чересчур большие изображения, больше 1МБ, как узнать вес загружаемой картинки?

Answer 1

Способ выбран не самый лучший...

однозначно можно ответить - для определения размера сообщения достаточно посчитать количество байт в строке после декодирования из base64.

Таким образом, после строки $icon = base64_decode($icon); нужно вставить код: $image_size = strlen($icon);

В переменной $image_size будет размер. По нему нужно делать условие. Размер - в байтах!

Дополнительно можно почитать про функцию тут.

READ ALSO
Как отправить форму отзывов на почту?

Как отправить форму отзывов на почту?

Как отправить форму отзывов на почту + ошибку "Неверно введен e-mail!"?

187
Ошибка с mysqli_query()

Ошибка с mysqli_query()

Цель выслать данные в БД Код :

264
Заменить буквы слова на зеркальные

Заменить буквы слова на зеркальные

Например дано слово appleНужно заменить буквы данного слова на зеркальные:

162
Как узнать имя вызывающего метода через рефлексию в Java

Как узнать имя вызывающего метода через рефлексию в Java

Нужно написать функцию, которая бы вернула полное имя класса и имя вызывающей функции в процессе выполненияПолное имя класса я получаю, а как...

206