看来,当我使用html表单制作“Content-Type:multipart / form-data”POST请求时,这些字段始终按照它们在
HTML中列出的顺序显示.在实践中,所有浏览器都会这样做吗?
想要知道这一点的主要动机是所以我可以对需要的表单数据进行服务器端验证,以便在RAM中缓存整个HTTP请求.磁盘第一.
我知道CGI,PHP等通常不会做任何事情,直到上传完成.可能因为RFC 2388第5.5节通过说没有定义订单来解决这个问题.我正在使用一个高度定制的thttpd分支,并处理内置到服务器的上传w / C代码.所以我不在乎大多数服务器做什么.
我想知道的是,如果我出了一个肢体,然后承担一个命令,我会被这个假设焚烧吗?
以此形式为例:
<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()之前的dest字段.我想验证用户& dest服务器端,在recv()之前,整个HTTP请求体.
解决方法
是:
The parts are sent to the processing agent in the same order the corresponding controls appear in the document stream. Part boundaries should not occur in any of the data; how this is done lies outside the scope of this specification.