Поддержка закачки файлов
PHP/FI автоматически обнаруживает попытку закачки файла из броузера,
который поддерживает закачку файлов, основанную на базе форм, как это
предложено
Е. Небелем
и Л. Мазинтером
из Xerox и описано в RFC 1867.
Экран закачки файла, может быть сформирован созданием специальной формы,
которая будет выглядеть наподобие этой:
<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST> <
INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>
_URL_ должен указывать на php html файл. Скрытое поле MAX_FILE_SIZE должно
предшествовать полю ввода имени файла и его значением является максимальный
размер принимаемого файла. Значение задается в байтах. Для этого файла будут определены следующие переменные. При успешной закачке:
- $userfile
Временное имя файла, в котором загруженный файл был сохранен на машине сервере.
- $userfile_name
Первоначальное имя файла на машине отправителя.
- $userfile_size
Размер загруженного файла в байтах.
- $userfile_type
MIME тип файла, в том случае если
броузер предоставляет эту информацию. например это может быть
"image/gif".
$userfile - основная переменная из вышеупомянутых,
будет соответствовать полю NAME в форме закачки.
Файлы будут сохранены в заданном для сервера временном каталоге
по умолчанию. Это значение может быть изменено путем установки переменной
окружения среды TMPDIR для PHP/FI. Хотя, при установке ее с использованием
вызова PutEnv () из скрипта PHP/FI, это работать не будет. В качестве
альтернативы Вы можете установить временный каталог, редактируя php.h и
определив переменную UPLOAD_TMPDIR.
Скрипт PHP/FI, который принимает файл, может выполнить любые
логические действия, необходимые для определения что именно должно быть выполнено
с закачаннным файлом. Вы можете например использовать $file_size переменную,
для того чтобы отбросить любые файлы, которые являются либо слишком
маленькими либо слишком большими. Вы можете использовать $file_type
переменную, для того чтобы отбросить любые файлы, которые не соответствуют
каким-либо критериям типа. Какие бы ни были действия, вам нужно будет
удалить файл из временного каталога или переместить его в другое место.
Пожалуйста обратите внимание, что CERN httpd, кажется, удаляет все, начиная с первого пробела в заголовке MIME content-type, который он получает от
пользователя. Если дело обстоит таким образом, то CERN httpd не будет
поддерживать возможность закачки файлов.
[Назад]
[Содержание]
[Вперед]