работа с файлами на сервере

Работа с файлами на сервере

Файлы — загрузка на сервер

Перед загрузкой файлов на сервер, рассмотрим 3 настройки в php.ini:

  • file_uploads (on|off) — разрешить загрузку файлов на сервер или нет.
  • upload_tmp_dir — временная папка для загружаемых файлов. По умолчанию это временная папка на сервере.
  • upload_max_filesize (по умолчанию = 2 mb) — максимальный размер загружаемого файла в мегабайтах. Есть еще настройка.
  • post_max_size (по умолчанию 8Mb), это максимальный размер входящей формы, т.е. должен быть большее, чем загружаемый файл.

Файлы загружаются только методом POST. Простую загрузку файла можно написать так:

<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000">
<input type="file" name="userfile">
<input type="submit" value="Send">
</form>

Параметр enctype=»multipart/form-data» обязателен, иначе нам придет на сам файл, а его имя. Далее можем написать скрытое поле максимальный размер файла (способ не очень надежен, т.к. юзер сможет убрать этот скрытый код html) и элементы формы для выбора нужного файла.

Файлы — разбор на сервере

После загрузки все файлы в начале попадают во временную директорию на сервере. И эти файлы временно переименовывают (чтобы не совпали имена файлов). И вся информация, которая к нам приходит, попадает в глобальный массив $_FILES. Этот массив двумерный. Первая ячейка — имя поля, которое нам послали, внутри этой ячейки лежит массив: в котором 5 ячеек (см. код ниже): реальное имя файла, временное имя файла, размер, тип файла, ошибки.

//Принимаем данные
$tmp = $_FILES['userfile']['tmp_name'];
$name = $_FILES['userfile']['name'];
//Перемещаем файл
move_uploaded_file($tmp, name);
//Что в массиве $_FILES
$_FILES['userfile']['name']
$_FILES['userfile']['tmp_name']
$_FILES['userfile']['size']
$_FILES['userfile']['type']
$_FILES['userfile']['error']

Теперь, если файл нам нужен, забираем его из временной папки к себе через move_uploaded_file. Параметры функции — откуда берем, куда перемещаем (см. код выше).




Добавить комментарий

Ваш e-mail не будет опубликован.