Главная » Закачка файла на сервер с PHP
В более поздних версиях есть возможность использовать специальный массив ($http_post_files),
но в данном уроке описывается более ранний метод. В нашем примере мы будем использовать следующий код html формы для закачки файла:

< form method="post" enctype="multipart/ form-data" action=" script.php">
< input type="hidden" name="max_file_size" value="1000">
< input type="file" name="userfile">
< input type="submit">
form

Скрытое поле max_file_size (должно стоять перед тэгом < input type=file>) указывает
на максимально допустимую длину файла в байтах. То есть все файлы, длина которых
будет превышать указанное значение, не будут посылаться броузером на сервер.
При срабатывании события submit, данные становятся доступны в php скрипте автоматически,
то есть Вам не надо проводить разбор http запроса или пользоваться дополнительными модулями.
php сам заботится о том, чтобы Вы могли считывать значения соответствующих переменных.
Эти переменные наследуют левую часть названия(до символа '_') от имени поля, которое было указано в html коде. Если html код такой:

< input type="file" name="userfile">

то php переменные буду такими: $userfile: Имя временного файла на сервере, который был создан для закачки.
Вы можете использовать эту перменную чтобы считать содержимое закаченного файла
или скопировать этот временной файл в нужную директорию на сервере. $userfile_name: Имя файла на пользовательской машине.
Этот как раз имя того файла, который был выбран для закачки на броузере. $userfile_size: Длина закаченного файла в байтах. $userfile_type: mime-тип закаченного файла, если броузер указал это значение при посылке.
Например: "image/gif". Для проверки удачной закачки файла, используется функция is_uploaded_file($userfile),
которая возвращает true если переменная $userfile содержит имя закаченного файла,
и false в обратном случае. move_uploaded_file($userfile, "/place/to/put/uploaded/file/name.it"): функция, которая
переносит временный файл туда, куда Вы укажите. Ниже приведен php текст, который закачивает на сервер и сохраняет закаченные файлы.

if (is_uploaded_file($userfile)) {
move_uploaded_file($userfile, "/place/file.new");
}
?> А можно сделать тоже самое, используя функцию copy:
if (is_uploaded_file($userfile)) {
copy($userfile, "/place/file.new");
}
?> Категория: Web технологии | Просмотров: 73