• Как сделать мигающее уведомление во вкладке браузера?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    var titleState=0;
    setInterval(()=>{
    document.title=titleFlag?"Мигающий":"заголовок";
    titleState = titleState?0:1;
    },500);
    Ответ написан
    2 комментария
  • Как организовать хранение фотографий для сайта?

    @dimuska139
    Backend developer
    Загружайте файлы не в папку, а в s3-совместимое хранилище (чтобы при желании можно было без страданий и изменений в коде перейти на Amazon или в Linode какой-нибудь) - MinIO. Т.е. генерируете некий id, превращаете его в хеш, формируете ключ и по нему льёте в MinIO. Причём храните только оригиналы.

    Что касается миниатюр, то их нарезать и хранить не нужно. Представьте, если размеры в дизайне поменялись - что тогда? А если для каждой миниатюры webp-версия потребовалась - все картинки опять обрабатывать? Есть решение - imgproxy. Это специальный прокси-сервис (можно на свой сервер поставить, как и MinIO), который нарезает картинки "на лету" в момент обращения (по параметрам в url). Кроме нарезки, есть ещё куча разных возможностей. Кеша внутреннего нет, т.е. перед imgproxy есть смысл поставить Nginx для кеширования миниатюр (чтобы при каждом обращении не нарезало).
    Ответ написан
    7 комментариев
  • Вывод ошибки размера изображения через php, если размер картинки больше 5 мегабайт, как проверить?

    @grek_cheburek
    Программист самоучка
    Никогда не доверяйте тому, что пользователь вам присылает. Знаю, что $_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();
    }
    ?>


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