|
Отже, приступимо до створення простої форми, основна функція якої завантажувати файли певного типу і розміру в певну папку на сервері.
<form action="./upload.<a href="http://www.newbie.com.ua/php--html.html" target="_blank" title="PHP">PHP</a>" method="post" enctype="multipart/form-data">
<p><input type="file" name="userfile" id="file"></p>
<p><input type="submit" value="Загрузить файл"></p>
</form>
body{
margin:0px;
padding:0px;
background: #FFF;
background-image: none;
}
Крок 1.
Обробником цієї форми буде файл upload.php. Т.к. ми збираємося передавати через форму файли, то атрибут enctype потрібно обов'язково встановити в значення multipart / form-data.
Крок 2. Тепер ми можемо приступати до створення обробника, яким у нас є файл upload.php. Почнемо ми з того, що пропишемо допустимі типи файлів, які можна буде завантажувати на наш сервер. Цим ми захистимо себе від загрози, яку приховують у собі деякі типи файлів, такі як. Php,. Pl і т.д.
<?php $Allowed_filetypes = array ('. Jpg', '. Gif', '. Bmp', '. Png'); // Тут ми перераховуємо допустимі типифайлів
$Max_filesize = 524288; // Максимальний розмір файлу в байтах (в даному випадку він дорівнює 0.5 Мб).
$Upload_path = '. / Files /'; // Місце, куди будуть завантажуватися файли (в даному випадку це папка 'files').
$Filename = $_FILES ['userfile'] ['name']; // В змінну $filename заносимо точне ім'я файлу (включаючи розширення).
$Ext = substr ($filename, strpos ($filename ,'.'), strlen ($filename) -1); // В змінну $ext заносимо розширення завантаженого файлу.
// Звіряємо отримане розширення зі списком недопустимих розширень, які ми визначили на самому початку. Якщо розширення завантаженого файлу не входить в список дозволених, то перериваємо виконання програми і видаємо відповідне повідомлення.
if (! in_array ($ext, $allowed_filetypes)) die ('Даний тип файлу не підтримується.');
// Тепер перевіримо розмір завантаженого файлу і якщо він більше максимально допустимого, то перериваємо виконання програми і видаємо повідомлення.
if (filesize ($_FILES ['userfile'] ['tmp_name'])> $max_filesize)
die ('Фаил занадто великий.');
// Перевіряємо, чи доступна на запис папка, визначена нами під завантаження файлів (папка files). Якщо раптом недоступна, то видаємо повідомлення, що на папку потрібно поставити права доступу 777.
if (! is_writable ($upload_path))
die ('Неможливо завантажити файл в папку. Встановіть права доступу - 777.');
// Завантажуємо фаил в зазначену папку.
if (move_uploaded_file ($_FILES ['userfile'] ['tmp_name'], $upload_path. $filename))
echo 'Ваш фаил успішно завантажений <a href="'. $upload_path. $filename.'"> дивитися </ a>';
else
echo 'При завантаженні виникли помилки. Спробуйте ще раз. ';
?>
Ще один момент, який Вам варто знати. PHP за замовчуванням не дозволяє завантажувати файли більше ніж 2 Мб. Щоб збільшити цей показник, Вам потрібно підправити параметри set upload_max_filesize і post_max_size у файлі php.ini
|