ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.05.2024

Просмотров: 49

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

}

?>

Приклад 9.9. Використовування функції is_readable()

5 Видалення файлу

Останнє, що ми хочемо вивчити з дій над файлами, - це видалення файлів. Для того, щоб видалити файл за допомогою мови PHP, потрібно скористатися функцією unlink(). Синтаксис цієї функції можна описати таким чином:

bool unlink ( ім’я_файлу)

Дана функція видаляє файл, що має ім'я ім’я_файлу, повертає TRUE у разі успіху цієї операції і FALSE - у разі помилки. Щоб видалити файл, потрібно теж мати відповідні права доступу до нього (наприклад, доступу тільки на читання для видалення файлу недостатньо).

<?php

$filename = 'c:/users/files/my_file.html';

unlink($filename);

// видаляємо файл з ім'ям с:/users/files/my_file.html

?>

Приклад 9.10. Використовування функції unlink()


6 Завантаження файлу на сервер

Тепер вирішимо складнішу і часто виникаючу на практиці задачу завантаження файлу на сервер. Перше, що потрібно зробити, щоб завантажити файл на сервер, це створити html-форму. Для того, щоб за допомогою цієї форми можна було завантажувати файли, вона повинна містити атрибут enctype в тегу form із значенням multipart/form-data, а також елемент input типу file.

Приклад 9.11.

<form enctype="multipart/form-data" action="parse.php" method="post">

<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

Загрузить файл: <input type="file" name="myfile" /><br>

<input type="submit" value="Отправить файл" />

</form>

Приклад 9.11. Форма для завантаження файлу на сервер

Помітимо, що ми додали у формі приховане поле, яке містить в собі максимальний допустимий розмір завантажуваного файлу в байтах. При спробі завантажити файл, розмір якого більше вказаного в цьому полі значення, буде зафіксована помилка. В браузері створена нами форма виглядатиме як рядок для введення тексту з додатковою кнопкою для вибору файлу з локального диска (рис 9.1).

Мал. 9.1. Приклад форми для завантаження файлу на сервер

Тепер потрібно написати скрипт, який оброблятиме одержаний файл.

Вся інформація про завантажений на сервер файл міститься в глобальному масиві $_FILES. Цей масив з'явився починаючи з PHP 4.1.0. Якщо включена директива register_globals, то значення переданих змінних доступні просто по їх іменах.

Якщо ми завантажили з комп'ютера-клієнта файл з ім'ям critics.htm розміром 15136 байт, то скрипт з єдиною командою print_r($_FILES); виведе на екран наступне:

Array ( [myfile] => Array ( [name] => critics.htm

[type] => text/html

[tmp_name] => С:\WINDOWS\TEMP\php49F.tmp

[error] => 0

[size] => 15136

)

)

Взагалі кажучи, масив $_FILES завжди має наступні елементи:

$_FILES['myfile']['name'] - ім'я, яке мав файл на машині клієнта.

$_FILES['myfile']['type'] - mime-тип відправленого файлу, якщо браузер надав цю інформацію. В нашому прикладі це text/html.

$_FILES['myfile']['size'] - розмір завантаженого файлу в байтах.

$_FILES['myfile']['tmp_name'] - тимчасове ім'я файлу, під яким він був збережений на сервері.

$_FILES['myfile']['error'] - код помилки, що з'явилася при завантаженні.


Тут 'myfile' - це ім'я елемента форми, за допомогою якого була проведено завантаження файлу на сервер. Тобто воно може бути іншим, якщо елемент форми назвати інакше. Але інші ключі ( name, type і т. д.) залишаються незмінними для будь-якої форми.

Якщо register_globals=On, то доступні також додаткові змінні, такі як $myfile_name, яка еквівалентна $_FILES['myfile']['name'], і т.п.

Помилок при завантаженні в PHP виділяють п'ять типів і відповідно $_FILES['myfile']['error'] може мати п'ять значень:

0 - помилки не відбулося, файл завантажений успішно

1 - завантажуваний файл перевищує розмір, встановлений директивою upload_max_filesize у файлі настройок php.ini

2 - завантажуваний файл перевищує розмір, встановлений елементом MAX_FILE_SIZE форми html

3 - файл був завантажений частково

4 - файл завантажений не був

Висновок

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