Логіка завантаження файлів на сервер: PHP, JavaScript і AJAX

Механізм AJAX для завантаження файлів

Запуск передачі даних по AJAX ініціюється функцією InitXML(). Виконати завантаження файлів на сервер на PHP, JavaScript і AJAX пропонованим кодом – безпечно і надійно.

Отримання відповіді від сервера виконується функцією WaitReplySC(). Праворуч внизу наведено коди для двох ситуацій: перевірка наявності файлу перед завантаженням і власне процедура завантаження.

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

Серверний код на PHP

Сервер повинен перевірити можливість завантаження файлу. Перешкоди для завантаження визначаються розв’язуваної завданням, але завжди важливо не затерти інформацію, тобто передбачити і заблокувати завантаження файлів на сервер PHP повторно.

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

Це код перевірки наявності файлу за його унікального імені. Функція об’єкта бази даних $oBase NewViuq() визначає унікальне ім’я завантажуваного елемента і ставить його у відповідність до реального імені файлу.

Якщо перевірка імені була вдалою, відвідувач натискає на кнопку завантаження і механізм AJAX ініціює завантаження файлів на сервер. PHP код коригує запис в таблиці MySQL і виходить наступний результат:

У файловій системі з’явився ще один елемент, а рядок таблиці цього файлу отримала остаточне зміст. Поле статусу (f_status) містить символ “N”, тобто операцій над завантаженим файлом ще не було.