分段上传表格:订单有保证吗?

Bri*_*and 21 html cgi http cross-browser mime-types

看来,当我使用html表单制作"Content-Type:multipart/form-data"POST请求时,这些字段始终按照HTML中列出的顺序显示.在实践中,所有浏览器都这样做吗?

希望了解这一点的主要动机是,我可以对表单数据进行服务器端验证,而不需要将整个 HTTP请求缓存在RAM中.磁盘第一.

我知道CGI,PHP等通常不会做任何事情直到上传完成.可能是因为RFC 2388第5.5节通过说订单没有定义来解决这个问题.我正在使用高度自定义的thttpd分支,并处理内置于服务器内置的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>
Run Code Online (Sandbox Code Playgroud)

'uploadFile()'函数将在调用submit()之前填写user和dest字段.我想recv()在整个HTTP请求体之前验证用户和dest服务器端.

Pet*_*aný 24

是:

部件以相同的顺序发送到处理代理,相应的控件出现在文档流中.部分边界不应出现在任何数据中; 如何做到这一点超出了本规范的范围.

http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4

  • 谢谢你的回答!不知道为什么我没想到检查HTML规范.顺便说一句,在测试不同的浏览器时,我发现即使是IE6也是合规的......我认为这意味着我的假设是安全的,但我觉得有更好的参考规范. (2认同)