Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Курс / переподы / анал / Методичні вказівки.doc
Скачиваний:
2
Добавлен:
30.05.2020
Размер:
1.95 Mб
Скачать

Практична робота №8 тема: Взаємодія з файловою системою

МЕТА – познайомитися з засобами взаємодії РНР з файловою системою.

Порядок виконання завдання:

1 Підтримка завантаження файлів на сервер по протоколу HTTP - одна з найважливіших функціональних можливостей РНР. У цьому процесі пересилання файлів відбувається не у звичайному для HTTP-протоколу напрямку - із сервера на браузер, а в протилежному - із браузера на сервер.

За допомогою блокноту створіть html-форму, та запишіть наступний програмний код для завантаження файлу на сервер.

<html> <head> <title> Адміністрація –  завантаження нових файлів </title> </head> <body> <hl>Завантаження нових файлів новин</hl> <form enctype="multipart/form-data" action="upload.php" method=post> cinput type="hidden" name="MAX_FILE_SIZE" value="1000"> Upload this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> </body> </html>

Збережіть отриманий код у файлі під назвою upload.html.

2 У файлі upload.php створіть PHP-сценарій прийому файлу, що пересилається за допомогою HTML-форми, використовуючи нижчеподаний програмний код:

<head> <title>Uploading... </head> <body> <hl>Uploading if ($userfile=="none") { echo "Problem: no file uploaded"; exit; } if ($userfile_size==0) { echo "Problem: uploaded file is zero length"; exit; } if ($userfile_type != "text/plain") { echo "Problem: file is not plain text" ; exit; } if ( ! is_uploaded_f ile ($userf ile) ) { echo "Problem: possible file upload attack"; exit; } $upfile = " /home /book/uploads/ " . $userf ile_name ; if ( ! copy ($userf ile, $upfile) ) <  echo "Problem: Could not move file into directory"; exit ; echo "File uploaded successfully<brxbr>" ; $fp = f open ($upf ile, "r") ; $contents = fread ($fp, filesize ($upfile) ) ; f close ($fp) ; $contents = strip_tags ($contents) ; $fp = f open ($upf ile, "w") ; fwrite($fp, $contents) ; f close ($fp) ; echo "Preview of uploaded file contents : <brxhr>" ; echo $contents; echo "<brxhr>" ; ?> </body> </html>

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

3 Після завантаження декількох файлів користувачам може знадобитися переглянути їх і виконати деякі маніпуляції із змістом. Для цієї мети в РНР передбачений набір функцій для роботи з файлами й каталогами. Запишіть у файл browsedіr.php - сценарій, що виконує перегляд каталогів для перевірки результатів завантаження файлів за нижченаведеним прикладом

<html> <head> <tіtle>Browse Dіrectorіes</tіtle> </head> <body> <hl>Browsіng</hl> $current_dіr = "/home/book/uploads/"; $dіr = opendіr($current_dіr); echo "Upload dіrectory іs $current_dіr<br>" echo "Dіrectory Lіstіng: <brXhrXbr>"; whіle ($fіle = readdіr($dіr)) { echo "$fіle<br>" echo "<hrXbr>" closedіr($dіr); ?> </body> </html>

Соседние файлы в папке анал