Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2012, 07:30
GROGUI2
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Pregunta Subir fichero y datos adicionales con CURL a otro servidor

Hola,

estoy utilizando CURL para hacer una petición a un servicio Web. El código que tengo es tal que así:

Código PHP:
public static function peticionPOST($url$data)
    {
        
$curl curl_init();

        
curl_setopt($curlCURLOPT_URL$url);
        
curl_setopt($curlCURLOPT_USERPWDYii::app()->params['APP_AUTH']);

        
curl_setopt($curlCURLOPT_SSL_VERIFYHOST0);
        
curl_setopt($curlCURLOPT_SSL_VERIFYPEER0); 
        
curl_setopt($curlCURLOPT_POST1);
        
curl_setopt($curlCURLOPT_POSTFIELDS$data);
        
curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
        
        
$r curl_exec($curl);    
        
curl_close($curl);
        return 
$r;
    } 
Todo funciona Ok, pero tengo un servicio al que tengo que mandarle un fichero y mas parámetros, si lo meto en un array con el nombre de los parámetros correctos, funciona.

El problema es cuando los ficheros son grandes, he leido que para solucionar esto hay una opción de cURL que permite enviar streaming, que es la siguiente:

Código PHP:
$fp fopen('path/to/save/file''w');
curl_setopt($chCURLOPT_FILE$fp);
curl_exec ($ch);
curl_close ($ch);
fclose($fp); 
Mi pregunta es, ¿cómo puedo combinar la solución anterior, para poder enviar el fichero y el resto de parámetros simultaneamente?

(Nota, el segundo trozo de código es un ejemplo para una descarga, no un upload, supongo que habrá algo similar para hacer un upload)

Gracias!