Завантаження файлів на сервер PHP за допомогою найпростішого функціоналу

33

Від автора: у мене на комп’ютері твориться цілковитий бардак! Дружина позабивала гвинт всякими «валізою без ручки», якимись незрозумілими програмами. Крім цього накачала купу книг з кулінарії, квітникарства і про те, як дізнатися про невірність чоловіка. З-за останньої категорії літератури я і боюся щось видаляти. Ось вирішив всі її жіночі файлові «фічі» закинути куди-небудь в онлайн. Виходить, що завантаження файлів на сервер PHP актуальна не тільки для вас, але і для мене :) .

Навіщо нам серверне простір?

Не думаю, що таке питання може виникнути у кого-то. Але всяке буває! Скажу тільки, що різні рішення для завантаження чого-небудь на серверне простір затребувані у сфері сайтобудування. Благо, за прикладами бігати далеко не треба.

Всі ми є користувачами тієї чи іншої соціалки. Павутинки цих «липких» мереж огорнули, торкнулися всіх і кожного. Щоб завантажити в свій профіль фотки з відпочинку, з сімейного торжества та інші докази успішного життя, використовується завантаження файлів на сервер через PHP.

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

Простіше не буває!

Будь-яке програмне рішення можна обвішати» стільком кількістю додаткового функціоналу, що часом автор і сам забуває, яка з функцій програми є основною.

Але ми постараємося так не закопуватися. Розглянемо основи PHP завантаження файла на сервер на прикладі, який не «отяжелен» різними фічами. Тобто це буде просто завантажувач.

Загрузка файлов на сервер PHP с помощью самого простого функционала







«;
echo «Розмір: «.$_FILES[‘path’][‘size’].»байт»;
}
?>

Кілька слів про код

Тепер розглянемо тонкощі, як завантажити файл на сервер PHP. В теге форми обов’язково потрібно прописати enctype.

Загрузка файлов на сервер PHP с помощью самого простого функционала

Найчастіше даний атрибут не вказується, але при пересилці файлів нам потрібно відключити кодування. Для цього використовується значення multipart/form-data.

Щоб отримати доступ до полів форми, звертаємося до глобального масиву $_FILES. Файли не відразу завантажуються в зазначену папку. Спочатку вони зберігаються в тимчасовій директорії. Її шлях записаний у значенні елемента масиву $_FILES[‘path’][‘tmp_name’]. Таким чином реалізується безпечне завантаження файлів на сервер PHP.

Для переміщення завантаженого файлу з тимчасової директорії в зазначену папку використовуємо move_uploaded_file(). Потім за допомогою $_FILES виводимо розмір файлу і його ім’я.

Загрузка файлов на сервер PHP с помощью самого простого функционала

Вдосконалюємося

Трохи вдосконалимо наш loader. Реалізуємо PHP завантаження декількох файлів на серверне простір:











«;
echo «Розмір: «.$_FILES[‘path’][‘size’].»байт».»
«;
echo «Завантажений другий файл: «.$_FILES[‘path1’][‘name’].»
«;
echo «Розмір: «.$_FILES[‘path1’][‘size’].»байт».»
«;
}
?>

Загрузка файлов на сервер PHP с помощью самого простого функционала

Звичайно, можна реалізувати завантаження файлів на сервер з допомогою PHP і Ajax, але тоді доведеться ускладнювати наш базовий приклад. А цього нам не потрібно :) .