Теперь вернемся к тому, с чего начали — к загрузке файлов. Сначала выясним, какой тэг надо вставить в форму, чтобы в ней появился соответствующий элемент управления — поле ввода текста с кнопкой Browse
справа. Таким тэгом является разновидность <input>:
<input type=file
name=èìÿ_ýëåìåíòà
[value=èìÿ_ôàéëà]
>
Пусть пользователь выбрал какой-то файл (скажем, с именем каталог\
имя_файла) и нажал кнопку отправки. В этом случае для нашего элемента формы создается один блок примерно такого вида:
----------------127462537625367\n
Content-Disposition: form-data; name="èìÿ_ýëåìåíòà";
Ä filename="êàòàëîã\èìÿ_ôàéëà"\n \n
........
Áèíàðíûå äàííûå ýòîãî ôàéëà ëþáîé äëèíû.
Çäåñü ìîãóò áûòü ñîâåðøåííî ëþáûå
áàéòû áåç âñÿêîãî îãðàíè÷åíèÿ.
........
\n
Мы видим, что сценарию вместе с содержимым файла передается и его имя в системе пользователя (параметр filename).
На этом, пожалуй, и завершим обозрение возможностей загрузки файлов.
Надеюсь, я посеял в вас неприязненное отношение к подобным методам: действительно, программировать это — не самое приятное занятие на свете (укажу только на то, что придется использовать приемы программной буферизации, чтобы правильно найти разделитель). Вот еще один довод в пользу PHP, в котором не нужно выполнять в принципе никакой работы, чтобы создать полноценный сценарий с возможностью загрузки файла.