[Aspirine Soft Studio ]
Главная » Статьи » Полезные советы и уроки » PHP

Загрузка файлов на сервер

Загрузка файлов на сервер.

В интернете часто спрашивают, как бы реализовать загрузку файлов на сервер? Вообще, загрузка средствами PHP не представляет из себя ничего сложного, а даже наоборот! Я когда только начинал изучать PHP был в неописуемом восторге от успешно выполенной загрузки какого-то архива на сервер. Мне понравилась простота кода, с помощью которого я это реализовал.

Но давайте ближе к делу.Необходимо поставить задачу, а затем ее решить.

Условие: написать скрипт, обеспечивающий загрузку файлов на сервер и производящий проверку на максимальный допустимый размер файла.

Вроде бы всё просто! На самом деле так оно и есть :)! Для начала нам нужно сделать HTML-форму, которая будет отправлять файл нам. Для этого потребуется следующий HTML-код:


Здесь представлен код страницы с формой для отправки файла на сервер. Отправка производится по адресу upload.php. Именно в этом файле мы и опишем весь алгоритм обработки файла и дальнейшего сохранения файла.

Слева представлено изображение, демонстрирующее вид самой простой формы для отправки файла.

Теперь нам надо создать файл upload.php(называть Вы можете конечно как угодно, но тогда и в форме нужно указывать соответствующий адрес).

Мы рассматриваем отправку файла методом POST. Параметры, которые передаются на сервер, описаны ниже:

$_FILES["file"]["name"] - имя файла на компьютере клиента (тот, с которого производится загрузка)
$_FILES["file"]["type"] - Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif".
$_FILES["file"]["size"] - размер принятого файла в байтах
$_FILES["file"]["tmp_name"] - временное имя, с которым принятый файл был сохранен на сервере.

Первый параметр совпадает с именем поля в HTML-форме.

Теперь надо написать алгоритм проверки размера файла и сохранения его в нужную папку.

Порядок действий будет следующим:

  1. Мы проверяем размер файла
  2. Если он не превышает лимит, мы его сохраняем в папке 'files' с тем же именем, с каким он был на компьютере пользователя.
  3. Если он превышает лимит, то мы выводим сообщение о том, что файл слишком большой.

Давайте начнем!

Итак, необходимо определить папку, в которую будем сохранять и максимальный размер файла.

<?PHP
$SaveDIR="files";
$MaxSize=10*1024*1024 // Максимальный размер файла 10 мб
?>

Теперь напишем скрипт проверки и записи файла.

<?PHP
if($_FILES["file"]["size"]<=$MaxSize)
       {
              copy($_FILES["file"]["tmp_name"],$SaveDIR.$_FILES["file"]["name"];
       }
              else
       {
              echo("Файл превышает максимальный размер");
       };
?>

В итоге файл upload.php примет следующий вид:

<?PHP
$SaveDIR="files";
$MaxSize=10*1024*1024 // Максимальный размер файла 10 мб
if($_FILES["file"]["size"]<=$MaxSize) // Проверка размера
       {
              copy($_FILES["file"]["tmp_name"],$SaveDIR.$_FILES["file"]["name"]; // Копирование файла
       }
              else
       {
              echo("Файл превышает максимальный размер");
       };
?>

По окончании работы скрипта временный файл автоматически удалится, а сохраненный останется на своем месте.

Я продемонстрировал один из методов загрузки файлов. Их существует множество, которые я, возможно, опишу позже.

В данном примере я использовал функцию copy.

Спасибо за внимание! Об ошибках сообщайте в комментариях к этой статье.

Категория: PHP | Добавил: Aspirine (12 Января 2011)
Просмотров: 1913 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]