Foros del Web » Programando para Internet » PHP »

Subir fichero y datos adicionales con CURL a otro servidor

Estas en el tema de Subir fichero y datos adicionales con CURL a otro servidor en el foro de PHP en Foros del Web. 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 ( ...
  #1 (permalink)  
Antiguo 18/05/2012, 07:30
 
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!
  #2 (permalink)  
Antiguo 18/05/2012, 07:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Subir fichero y datos adicionales con CURL a otro servidor

Para eso existe mejor la librería de FTP. Sería mejor que trabajes con la librería FTP de PHP que usar cURL.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 18/05/2012, 07:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Subir fichero y datos adicionales con CURL a otro servidor

Hola,

en primer lugar gracias por contestar. Pero si usara ¿esa librería solo podría hacer conexiones FTP verdad?

Yo tengo que hacer una petición a un servicio HTTPS, y eso me viene dado de antemano.

Quizá esté equivocado, pero antes de mirarme toda la librería prefiero asegurarme que es posible hacerlo

Gracias!
  #4 (permalink)  
Antiguo 18/05/2012, 08:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Subir fichero y datos adicionales con CURL a otro servidor

Lo que pides es posible hacerlo, pero la idea es usar la librería que corresponde. Es decir que cURL lo pueda hacer no quiere decir que es la forma optima o recomendable de hacerlo. La mejor es si vas a pasar de servidor a servidor usar la librería de FTP para poder pasar archivos de la forma más óptima.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 18/05/2012, 08:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Subir fichero y datos adicionales con CURL a otro servidor

El problema es que yo no tengo acceso a ese segundo servidor, simplemente tengo la documentación de esos servicios Web a los que yo puedo acceder, me viene impuesta, y tiene que ser así :S

¿De todos modos FTP solo sirve para mandar ficheros tal cual no?

Necesito mandar fichero + datos adicionales, y tiene que ser a un servicio HTTPS obligatoriamente.

Teniendo en cuenta estas restricciones, sigue siendo posible utilizar FTP y/o CURL. Si es así, agradecería un código sencillo a modo de ejemplo.

Gracias.
  #6 (permalink)  
Antiguo 18/05/2012, 09:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Subir fichero y datos adicionales con CURL a otro servidor

Seguro, con cURL entonces lo puedes lograr, ve al área de aportes hay un tema que te puede ayudar con cURL.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 18/05/2012, 11:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Subir fichero y datos adicionales con CURL a otro servidor

Ok, gracias! :_)

Edito: no he encontrado nada relacionado con mi problema :(

Última edición por GROGUI2; 18/05/2012 a las 11:25

Etiquetas: adicionales, curl, fichero, servidor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:42.