PHP/FI Version 2.0

23238a6d

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



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

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









Содержание раздела