O cabeçalho HTTP para uso para definir nomes de campo de formulário (multipart / form-dados)
-
01-07-2019 - |
Pergunta
Eu estou passando solicitações HTTP brutos para um servidor apache (recebido pelo PHP). O pedido é do tipo com várias partes / forma-dados, isto é, o mesmo tipo MIME usado quando o envio de formulários HTML. No entanto, eu não tenho certeza do que HTTP cabeçalho para uso para definir o nome de campo de formulário (eu só estou assumindo que é um cabeçalho que define isso, não sei o que mais poderia ser), que, em seguida, pode ser usado em PHP para acessar o campo em $ _GET ou $ _FILES.
O pedido HTTP pode ser algo como isto:
Content-type: multipart/form-data;boundary=main_boundary
--main_boundary
Content-type: text/xml
<?xml version='1.0'?>
<content>
Some content goes here
</content>
--main_boundary
Content-type: multipart/mixed;boundary=sub_boundary
--sub_boundary
Content-type: application/octet-stream
File A contents
--sub_boundary
Content-type: application/octet-stream
File B contents
--sub_boundary
--main_boundary--
Solução
O cabeçalho Content-Disposition tem um argumento nome que tem o nome do controle. Deve haver um após cada --sub_boundary
--sub_boundary
Content-Disposition: form-data; name="mycontrol"
Eu quase me esqueci: Se o campo é um controle de arquivo, há também um campo de nome de arquivo e um cabeçalho Content-Type
--sub_boundary
Content-Disposition: form-data; name="mycontrol"; filename="file1.xml"
Content-Type: application/xml;
e se o arquivo não é um texto, você também precisa
Content-Transfer-Encoding: binary