...
✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Завантажте зображення за допомогою Bulletproof Library у PHP

15

Завантаження зображення на сервер є загальним завданням для розробників. Можливо, це завдання виконувалося сотні разів. Під час цього процесу завантаження розробники повинні подбати про наступні речі.

  • Перевірте, чи завантажений файл є зображенням
  • Створіть каталог, де зберігатимуться зображення
  • Створіть унікальне ім’я для кожного зображення, щоб воно не замінило існуюче на те саме ім’я.
  • За бажанням додайте перевірку розмірності зображення. Якщо завантажене зображення має великі розміри, ніж вказано, видайте помилку.

Ось такі рекомендовані перевірки розробник повинен виконувати під час написання коду. У коді можна записати умови для всіх цих кроків. Але для цього доведеться трохи попрацювати, і код стане довгим.

Я порекомендую використовувати Bulletproof бібліотеку, яка обробляє всі ці кроки під капотом. Це економить час додавання логіки для кожного кроку та зменшення кількості рядків з коду.

Bulletproof – це PHP-завантажувач зображень із приємним API. Ми спробували цю бібліотеку для нашого проекту, і ми цілком задоволені кінцевим результатом. Тому я вирішив поділитися словом про цю бібліотеку з нашими читачами.

Куленепробивна бібліотека має основні функції, що роблять її більш безпечною.

  • Використовує exif_imagetype() для отримання справжнього mime-зображення (.extention)
  • Використовує getimagesize (), щоб перевірити, чи має зображення дійсну висоту / ширину в пікселях.
  • Дезінфіковані назви зображень, суворі дозволи на папки та інше …

З огляду на це, давайте подивимося, як завантажувати зображення в PHP за допомогою бібліотеки Bulletproof.

Починаємо

Щоб розпочати роботу з куленепробивною бібліотекою, встановіть її за допомогою команди Composer нижче. Переконайтеся, що в системі встановлено Composer.

composer require samayo/bulletproof:4.0.*

Далі створіть просту HTML-форму із введенням файлу та кнопкою подання.

<form method="POST" enctype="multipart/form-data">
    <p><input type="file" name="image" accept="image/*" required /></p>
    <input type="submit" name="submit" value="Upload" />
</form>

Завантажте зображення за допомогою куленепробивної бібліотеки

У нас є бібліотека та форма HTML. Тепер додамо код, наданий бібліотекою, який завантажує зображення на сервер.

<?php
require_once 'vendor/autoload.php';
 
if (isset($_POST['submit'])) {
 
    $file = new BulletproofImage($_FILES);
 
    $file->setLocation('uploads');
 
    if ($file["image"]) {
        $upload = $file->upload();
 
        if ($upload) {
            echo $upload->getFullPath();
        } else {
            echo $file->getError();
        }
    }
}
?>

Ви закінчили. Вперед і випробуй це. Ви побачите свої зображення, збережені в папці "uploads" з унікальним ім’ям. Користувач може змінити це місце чимось іншим.

Якщо ви спробуєте завантажити файли, крім зображень, ви отримаєте повідомлення про помилку. Про всяк випадок, якщо ви також хочете встановити розмірність, додайте наступний вислів у наведений код.

$file->setDimension(600, 400);

Тут ‘600’ – це ширина зображення, а ‘400’ – це висота зображення. Налаштуйте значення відповідно до ваших вимог.

Завантажте кілька зображень за допомогою куленепробивної бібліотеки

Ви можете завантажити кілька зображень на сервер за допомогою цієї бібліотеки. Це вимагає невеликих змін у наведеному вище коді. Вам потрібно додати атрибут ‘multiple’ до введення файлу. Також використовуйте формат масиву для імені введення файлу. Після цього ми переглянемо кожне зображення та завантажимо його на сервер наступним чином.

<?php
require_once 'vendor/autoload.php';
 
if (isset($_POST['submit'])) {
    for($i = 0; $i < count($_FILES['image']['name']); $i++) {
  
        $arr_file = array(
            "name" => $_FILES['image']['name'][$i],
            "type" => $_FILES['image']['type'][$i],
            "tmp_name" => $_FILES['image']['tmp_name'][$i],
            "error" => $_FILES['image']['error'][$i],
            "size" => $_FILES['image']['size'][$i],
        );
  
        $file = new BulletproofImage($arr_file);
  
        $file->setLocation('uploads');
  
        $upload = $file->upload();
    }
}
?>
<form method="POST" enctype="multipart/form-data">
    <p><input type="file" name="image[]" accept="image/*" multiple required /></p>
    <input type="submit" name="submit" value="Upload" />
</form>

Це воно! Сподіваюся, ви розумієте, як завантажити зображення через куленепробивну бібліотеку. Будь ласка, поділіться своїми думками та пропозиціями в розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі