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($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERPWD, Yii::app()->params['APP_AUTH']);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$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($ch, CURLOPT_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!