Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Subir imágenes con CURL al servidor

Estas en el tema de Subir imágenes con CURL al servidor en el foro de PHP en Foros del Web. Buenas noches a todos: He visto que este tema está muy trillado en el foro, pero aún leyendo y probando mil cosas no consigo hacer ...
  #1 (permalink)  
Antiguo 10/03/2013, 22:15
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Subir imágenes con CURL al servidor

Buenas noches a todos:

He visto que este tema está muy trillado en el foro, pero aún leyendo y probando mil cosas no consigo hacer funcionar el script.

Os dejo lo que tengo escrito a ver si alguien le vé el fallo, porque yo a las 5 de la mañana que son ya no veo tres en un burro -.- ...

Código PHP:
$img $_FILES["img"];

if ((isset(
$img)) && (!empty($img)))
{                     
     
$path "/path";
          
     
$imagen_destino $path."/".$img["name"];
     
$ch curl_init();
     
curl_setopt($chCURLOPT_URL$img["tmp_name"]);
     
curl_setopt($chCURLOPT_POST1);       

     
$post = array('name' => 'Foo''file' => '@'.$imagen_destino);
        
     
curl_setopt($chCURLOPT_POSTFIELDS$post); 
     
curl_exec($ch);

Supuestamente, entre lo que he encontrado en la web de PHP.net y lo que he visto que se ha escrito en el foro, esto es lo que he conseguido, pero no funciona -.- ....

Gracias por adelantado a todo el que quiera perder su tiempo conmigo -.-
  #2 (permalink)  
Antiguo 10/03/2013, 22:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Subir imágenes con CURL al servidor

CURLOPT_URL es para establecer la página que se va a cargar al ejecutar cURL y tú estás especificando ruta y nombre del archivo temporal.

Busca un ejemplo de enviar archivos con cURL en esta página: http://labs.viricmind.org/2012/03/01...ttp-desde-php/
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/03/2013, 08:25
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Subir imágenes con CURL al servidor

Muchas gracias por al aporte, Triby, pero al final, no sé por qué, no me funciona -.- ...

Así que opté por esta otra opción, que sí que me ha funcionado perfectamente ;) :

Código PHP:
function foo() {
   
$imagen $_FILES["imagen"];
       
   if ((isset(
$imagen)) && (!empty($imagen)))
   {                     
        
$path FILES_PATH."/imgs";
        
$ftp = @ftp_connect("host"); 
        @
ftp_login($ftp"user""pass"); 
        @
ftp_pasv($ftpfalse); 
        @
ftp_chdir($ftp$path); 
        
$flag = @ftp_put($ftp,$imagen["name"],$imagen["tmp_name"],FTP_BINARY);      
        @
ftp_quit($ftp);      
   }

   return 
$flag;

Lo dejo como aporte para los que se encuentren con el mismo problema que yo, el allow_url_fopen Off por defecto y sin posibilidad de cambiarlo ¬¬ ...

PD: FILES_PATH es una constante que tengo definida previamente en el código ;) .
  #4 (permalink)  
Antiguo 11/03/2013, 16:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Subir imágenes con CURL al servidor

Pero, lo que estas haciendo es por FTP, no por cURL y creo que es más apropiado así como lo tienes ahora, sólo elimina las @ y coloca algo de validación.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 11/03/2013, 17:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Subir imágenes con CURL al servidor

Lo sé, sé que no es con curl, pero como no conseguí hacerlo funcionar con curl, opté por FTP y funciona perfecto ;) .

Lo del control de errores lo tengo implementado, lo que pasa es que en el código del ejemplo no lo tengo para no reliarlo mucho y que se vea claro.

Etiquetas: curl, 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 23:04.