Parece que cuando uso un formulario html para realizar una solicitud POST "Content-Type: multipart/form-data", los campos siempre aparecen en el orden en que aparecen en el código HTML. En la práctica, ¿todos los navegadores hacen esto?Formulario de carga de varias partes: ¿Se garantiza el pedido?
La motivación principal para querer saber esto es que puedo hacer la validación del lado del servidor de los datos del formulario sin que sea necesario almacenar en caché la solicitud entera HTTP en RAM | disco primero
Sé que CGI, PHP, etc. normalmente no harán nada hasta que la carga se complete. Probablemente porque RFC 2388 sección 5.5 aborda este problema diciendo que el orden no está definido. Estoy trabajando con un fork muy personalizado de thttpd y manejo el código de carga w/C integrado en el servidor. Entonces no me importa lo que hagan la mayoría de los servidores.
Lo que quiero saber es si me arriesgaré y asumiré un pedido, ¿me quemaré con esa suposición?
tomar esta forma, por ejemplo:
<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>
La función 'uploadfile()' llenará los campos dest usuario & antes de invocar a presentar(). Me gustaría validar también el usuario & del lado del servidor de destino, antes de recv()
, es decir, todo el cuerpo de la solicitud HTTP.
Para aquellos que se preguntan acerca de 'FormData()', también parecen ser enviados en orden. [Spec.] (Https://xhr.spec.whatwg.org/#interface-formdata) – 0xcaff