Pregunta

quiero recibir lo siguiente HTTP solicitud en PHP:

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--

(Nota:He sangrado las subpartes solo para que sean más legibles para esta publicación).

No hablo PHP con mucha fluidez y me gustaría obtener ayuda/consejos para descubrir cómo recibir este tipo de solicitud de formulario de varias partes en código PHP.Una vez escribí un código en el que recibí un formulario HTML estándar y luego pude acceder a los elementos del formulario usando su nombre como clave de índice en el $HTTP_GET_VARS matriz, pero en este caso no hay nombres de elementos de formulario y las partes de datos del formulario no son lineales (es decir,subpartes = matriz multinivel).

¡Agradecido por cualquier ayuda!

/roberto

¿Fue útil?

Solución

$HTTP_GET_VARS, $HTTP_POST_VARS, etc.es una notación obsoleta, deberías usar $_GET, $_POST, etc.

Ahora, el contenido del archivo debería estar en el $_FILES matriz global, mientras que, si no hay nombres de elementos, no estoy seguro de si el resto del contenido aparecerá en $_POST.De todos modos, si always_populate_raw_post_data la configuración es verdadera en php.ini, los datos deben estar en $HTTP_RAW_POST_DATA.Además, toda la solicitud debería aparecer al leer. php://entrada.

Otros consejos

Debes tener en cuenta:

“php://input te permite leer datos POST sin procesar.Es una alternativa que consume menos memoria que $HTTP_RAW_POST_DATA y no necesita directivas especiales de php.ini.php://input no está disponible con enctype=”multipart/form-data”

Del manual de php...entonces parece que php://input no está disponible

No puedo comentar todavía, pero esto pretende complementar la respuesta de Pilsetnieks.

Se podrá acceder a los archivos cargados a través de la variable global $_FILE, se podrá acceder a otros parámetros a través de la variable global $_GET.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top