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 должно предшествовать полю ввода имени файла и его значением является максимальный размер принимаемого файла. Значение задается в байтах. Для этого файла назначения, следующие переменные будут определены, при успешной закачке:
Временное имя файла, в котором загруженный файл был сохранен на машине сервере.
Первоначальное имя файла на машине отправителя.
Размер загруженного файла в байтах.
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 не будет поддерживать возможность закачки файлов.