Загрузка файлов на сервер
Перед тем как начать загружать файлы с помощью PHP, нужно убедиться, что эта функция включена. Это, пожалуй, самый важный шаг к тому, чтобы загрузка прошла без каких либо проблем. Для того чтобы проверить включена ли загрузка файлов, надо открыть файл php.ini и проверить имеет директива file_upload значение true, тоесть его значение равно 1. (Если у Вас нет возможности открывать или изменять файл php.ini, тогда обратитесь в службу поддержки Вашего хостинга и попросите, чтобы они включили это свойство.) Если Вы используете версию PHP старше 4.0.3, эта директива не присутствует в файле php.ini.
Вы также можете проверить upload_max_filesize и другие директивы, чтобы посмотреть (изменить) ограничения на добавление Вашего файла.
Также Вы можете изменить место где будут храниться временно загруженные файлы. Для этого Вам надо просто поменять путь в директиве upload_tmp_dir. Но помните, что при изменении пути, убедитесь, что каталогу разрешена запись.
Теперь, когда мы рассмотрели некоторые конфигурации, можно приступать к созданию скрипта загрузки файлов на сервер. Для создания скрипта мы будем использовать два файла – upload.html и upload.php. Если Вы не знаете язык HTML, то не надо волноваться. Мы с вами будем использовать только тег <form>.
Ну что приступим. Создадим файл upload.html, добавим в него форму для загрузки:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>PHP Upload System</title> </head> <body> <form name="file_uploader" action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="data"><br /> <input type="submit" name="upload" value="Upload File"> </form> </body> </html>
Можно заметить, что параметр enctypeравен значению multipart/form-data. Этот параметр необходим, чтобы Вы могли загружать файлы. Если параметр enctypeне установлен, то загрузка не будет работать.
Хорошо, с формой я думаю, проблем никаких не возникло. Теперь приступим к самой интересной части урока. Создадим файл upload.php и добавим в него обработчик.
<?php
if ( !isset($_FILES['data']['name']) || $_FILES['data']['name'] == '' ) {
die('No input file specified. Please go back and select a file to upload.');
}
$max_filesize = 999999;
$filetype = 'text/plain';
$upload_path = '/ngbbs/';
if ($_FILES['data']['size'] > $max_filesize) {
die('Your filesize is too large. Please make your filesize smaller than ' . $max_filesize . ' bytes.');
}
if ($_FILES['data']['type'] != $filetype) {
die('Sorry, your file was not of the ' . $filetype . ' mimetype (yours was ' . $_FILES['data']['type'] . ').');
}
$copy_to = $_SERVER['DOCUMENT_ROOT'] . $upload_path . $_FILES['data']['name'];
$upload = move_uploaded_file($_FILES['data']['tmp_na
me'], $copy_to);
if (!$upload) {
die('Sorry, your file could not be uploaded.');
}
echo 'Your file contents are below: <hr>' . file_get_contents($copy_to);
?>
Хорошо, давайте теперь рассмотрим работу скрипта. $_FILES – глобальная переменная которая удерживает содержимое файла, в которую был загружен как $_POST или $_GET. Переменная $_FILE записывается в виде:
$ _FILES [ 'Html_name'] [ 'Name']; //возвращает имя файла на компьютере пользователя $ _FILES [ 'Html_name'] [ 'Size']; //возвращает размер файла в байтах $ _FILES [ 'Html_name'] [ 'Type']; //возвращает MIME тип файла $ _FILES [ 'Html_name'] [ 'tmp_name']; //извлекает фактические сам файл
Для загрузки файлов без ошибок, убедитесь, чтобы путь к каталогу в который Вы хотите загрузить файл был доступен для записи.
Move_uploaded_file () принимает два параметра, оригинальный файл ($ _FILES ['html_name'] ['tmp_name']), и путь, в который вы хотите, его загрузить. Это очень просто, поскольку шаги подробно показано в самом коде. Эта функция доступна только в версиях 4.0.3 и выше. Если вы используете старую версию вы, можете использовать copy(). Move_uploaded_file () и copy () возвращают TRUE в случае успеха и FALSE, если неудачно. Это позволяет очень легко определить был, загружен файл или нет. На этом все!
Последние уроки категории:
Сокращение PHP кода
Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...
Видимость переменных в PHP
В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.
Как читать Rss ленты?
Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.
Установка и настройка PHP+Apache
В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.
Как выбрать фреймворк
Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.




Комментарии: