Похоже, что когда я использую html-форму для выполнения запроса POST «Content-Type: multipart / form-data», поля всегда отображаются в том порядке, в котором они перечислены в HTML. На практике, все ли браузеры делают это?
Основной мотивацией для желания узнать это является то, что я могу выполнить проверку данных формы на стороне сервера без необходимости кэшировать весь HTTP-запрос в ОЗУ | диск первый.
Я знаю, что CGI, PHP и т. Д. Обычно ничего не делают, пока загрузка не завершится. Вероятно, потому что раздел 5.5 RFC 2388 решает эту проблему, говоря, что порядок не определен. Я работаю с сильно настроенным форком thttpd и обрабатываю код загрузки, встроенный прямо в сервер. Поэтому мне все равно, что делает большинство серверов.
Что я хочу знать, так это если я выхожу на конечность и принимаю приказ, я сгорю от этого предположения?
Возьмите эту форму, например:
<form id="formUpload"
target = "uploadTarget"
method = "post"
action = "/bin/upload"
enctype= "multipart/form-data" >
<input type="hidden" id="inUser" name="user" />
<input type="hidden" id="inDest" name="dest"/>
<input type="file" id="inFile" name="file" />
<input type="button" value="Upload" onclick="uploadFile();" />
<iframe id="uploadTarget" name="uploadTarget" src="" style="width:0;height:0;border:0px"/>
</form>
Функция uploadFile () заполняет поля user & dest перед вызовом submit (). Я также хотел бы проверить серверную часть user & dest перед тем, как recv()
обработать весь текст HTTP-запроса.