PHP. Загрузка файла на сервер.
Довольно часто приходится сталкиваться с необходимостью получения от пользователя файла для дальнейшей его обработки. Помимо обычных значений переменных, при помощи HTML формы можно передавать на сервер любые бинарные файлы, которые в последствие можно обрабатывать PHP сценарием.
Для начала нам понадобится создать отдельный файл (например ‘index.html’) c HTML формой:
<html>
<head>
<title> Загрузка файла на сервер </title>
</head>
<body>
<h2> Форма для загрузки файлов</h2>
<form action=”upload.php” method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”filename”><br>
<input type=”submit” value=”Загрузить”><br>
</form>
</body>
</html>
Обратите внимание на атрибут формы: enctype=”multipart/form-data”
Он является обязательным при передачи файла и необходим для правильной передачи данных на сервер.
Теперь пишем сценарий – обработчик (upload.php)
<html>
<head>
<title> Результат загрузки файла </title>
</head>
<body><?php
// если удалось скопировать полученный файл на сервер
if(copy($_FILES["filename"]["tmp_name"], $_FILES["filename"]["name"]))
{
echo(“Файл успешно загружен <br>”);
// далее выводим информацию о файле
echo(‘<br>Имя файла: ‘);
echo($_FILES["filename"]["name"]);
echo(‘<br>Размер файла: ‘);
echo($_FILES["filename"]["size"]);
echo(‘<br>Тип файла: ‘);
echo($_FILES["filename"]["type"]);
}
else
{
echo(“Ошибка загрузки файла”);
}
?></body>
</html>
Вот, собственно, и все.
Задание:
Провести проверку параметров загружаемого файла и отказать в загрузке если:
- Файл не является JPEG – картинкой
- Размер файла превышает 3 Mb
- Имя файла содержит недопустимые символы (!”;$%&)
Ваш вариант кода просим оставлять в комментариях к уроку





ноября 1, 2008 at 20:49
Здравствуйте! А у меня такой вопрос!!! Я в ПХП вообще дерево… но вот захотелось…ну так вот к чему это я! В общем делаю всё как сказанно по уроку…загружаю файл индекс.чтмл и аплоад.пхп…но фикус в том что:
после нажатия на кнопку “загрузить” идет переход на страничку с ошибкой:
404.php! И как это понимать? Чтото не то с серваком чтоли? Какието права доступа отключены? Помогите плизз!! Я пользуюсь бесплатным хостингом от http://www.110mb.com
Добавить комментарий
Вы должны войти