Поддержка закачки файлов

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 не будет поддерживать возможность закачки файлов.