Estoy escribiendo una API RESTful. Tengo problemas para subir imágenes con los diferentes verbos.Solicitud de PUT de datos de formulario multiparte de PHP?
Considere:
Tengo un objeto que puede ser creado/modificado/borrado/visto a través de una entrada/put/delete/get petición a una URL. La solicitud es un formulario de varias partes cuando hay que cargar un archivo, o una aplicación/xml cuando solo hay texto para procesar.
Para manejar las cargas de imágenes que se asocian con el objeto que estoy haciendo algo como:
if(isset($_FILES['userfile'])) {
$data = $this->image_model->upload_image();
if($data['error']){
$this->response(array('error' => $error['error']));
}
$xml_data = (array)simplexml_load_string(urldecode($_POST['xml']));
$object = (array)$xml_data['object'];
} else {
$object = $this->body('object');
}
El principal problema aquí es cuando se trata de gestionar una petición PUT, obviamente, $ _POST De no contiene la opción de venta datos (¡hasta donde puedo decir!).
de referencia, esta es la forma en que estoy construyendo las solicitudes:
curl -F [email protected]/image.png -F xml="<xml><object>stuff to edit</object></xml>"
http://example.com/object -X PUT
¿Alguien tiene alguna idea de cómo puedo acceder a la variable xml
en mi solicitud PUT?
Gracias, eso es más cargas útiles :) – Josh
"En primer lugar, $ _FILES no se rellena al manejar peticiones PUT. Sólo está poblada por PHP al manejar peticiones POST." No puedo encontrar documentación sobre esto, ¿pueden indicarme la dirección correcta? – WDRust
@ M.Ang .: [Aquí] (http://php.net/manual/en/features.file-upload.post-method.php): "PHP también es compatible con las cargas de archivos del método PUT tal como lo utilizan Netscape Composer y los clientes de Amaya del W3C. Consulte el [Soporte de métodos PUT] (http://php.net/manual/en/features.file-upload.put- method.php) para más detalles ". – netcoder