Форма завантаження файлів на сервер за допомогою php

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

Оброблювачем форми завантаження файлів буде PHP.

Код тривіально простий. Головне не забувати про вказівку enctype, тому що, як правило, через нього і виникають проблеми. Друге, на що звертаю увагу, так це на те, що не прописаний в формі action. тобто мається на увазі, що html-код і php-код будуть в одному файлі. Все що стосується html-коду форм можна прочитати в статті - Форма зворотного зв'язку на PHP.

1 Рядок 2. У змінну файл $ file полягає ім'я тимчасового файлу, в який зберігається долучення.

2 Рядок 3. У змінну $ filename полягає вихідне ім'я файлу.

3 Рядок 4. Перевірка - якщо файл завантажувався, то буде виконано весь ніженапісанное код.

4 Рядок 6. Виділяємо на процес більше опертівкі, тому що при завантаженні великих файлів замовчувань може бути недостатньо. 32 метрів має вистачити, якщо що, ставте 64.

5 Рядок 7. Максимальний розмір файлу в байтах в змінній $ maxsize. Зараз стоїть 100Мб.

6 Рядки 8-10. Список допустимих розширень для файлів. Змінна $ extentions.

7 Рядок 11. Визначаємо розмір файлу в змінній $ size.

8 Рядок 12. Визначаємо розширення файлу в перемнние $ type.

9 Рядок 13. Задаємо нове ім'я файлу, якщо воно треба.

10 Рядки 14-19. Перевірка відповідності розміру файлу.

11 Рядки 20-25. Перевірка розширення файлу

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

Не варто забувати про ... Три нюанси

Перше, про що не варто забувати, це про розширення файлів.

Завжди перевіряйте їх, тому що якщо завантажити скриптик на сервер, то можна видалити все без всяких зусиль.

Другий нюанс був знайдений методом проб і помилок і пов'язаний ось із чим. Якщо файл html і файл обробника розділити (наприклад, на htmlcode.html і phpcode.php), то файл хтмл може знаходиться взагалі на будь-якому сервері і в ньому буде прописаний шлях до файлу php на іншому сервері. Тобто можна злоумишленнічать за допомогою того.

Ну а третій нюанс із захистом не пов'язаний. Просто пам'ятайте про 6 сходинку в коді, іноді потрібна =).

Для скачування потрібно зареєструватись
або зайти під своїм логіном і паролем СКАЧАТИ

Інші статті по рубриці «PHP і MySql»

Схожі статті