Похоже, что когда я использую html-форму для выполнения POST-запроса «Content-Type: multipart / form-data», поля всегда появляются в том порядке, в котором они перечислены в HTML.На практике все ли браузеры это делают?
Основная мотивация моего желания знать это, чтобы я мог выполнить проверку данных формы на стороне сервера без необходимости кэшировать весь HTTP-запрос в RAM | диск первым.
Я знаю, что 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 ()' будет перед вызовом submit () заполните поля user и dest. Я хотел бы также проверить пользовательскую и целевую стороны сервера, прежде чем recv ()
будет обрабатывать все тело HTTP-запроса.