Foros del Web » Programando para Internet » PHP »

descargar imagen de internet desde php

Estas en el tema de descargar imagen de internet desde php en el foro de PHP en Foros del Web. eso... necesito que al poner la ruta de una imagen en internet... por ejemplo Código HTML: http://www.google.cl/logos/laser08.gif me las guarde en una carpeta con php... ...
  #1 (permalink)  
Antiguo 16/05/2008, 09:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Pregunta descargar imagen de internet desde php

eso... necesito que al poner la ruta de una imagen en internet... por ejemplo
Código HTML:
http://www.google.cl/logos/laser08.gif
me las guarde en una carpeta con php...

Igual al upload de imagenes, pero desde internet... no e podido dar con el resultado...

algo de ayuda?
  #2 (permalink)  
Antiguo 16/05/2008, 09:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: descargar imagen de internet desde php

Hola owis,

Para eso debes de usar sockets, para obtener la imagen como binario y luego la escribes con fwrite.

Saludos.
  #3 (permalink)  
Antiguo 16/05/2008, 10:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: descargar imagen de internet desde php

gracias por la respuesta tan rapida...

pero podrias explicarte un poco mejor... o alguna web de referencia para hechar un vistazo

saludos
  #4 (permalink)  
Antiguo 16/05/2008, 11:16
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 75
Antigüedad: 16 años
Puntos: 0
Respuesta: descargar imagen de internet desde php

Código PHP:
if ($secuencia fopen('http://www.google.cl/logos/laser08.gif''r')) {
    
// imprimir toda la pagina comenzando en la posicion 10
    
$image stream_get_contents($secuencia, -110);

    
fclose($secuencia);
}
//Luego la logica para guardar en servidor 
  #5 (permalink)  
Antiguo 16/05/2008, 11:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: descargar imagen de internet desde php

Hola owis,

Es un poco amplio, pero primero tendrías que estudiar un poco el protocolo HTTP, y ver en el manual de PHP, la función fsockopen para hacer peticiones HTTP.

Posteriormente cuando hagas la petición la respuesta la almacenas como binaria usando fopen / fwrite / fclose en un archivo, y con eso crearías la imagen en tu servidor local.

Saludos.
  #6 (permalink)  
Antiguo 16/05/2008, 11:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: descargar imagen de internet desde php

Hola jonathan_miguel,

La deventaja de usar directamente fopen, es que si no tienes activado allow_furl_open, en el php.ini no funcionará correctamente, es por eso que es mejor usar fsockopen.

Saludos.
  #7 (permalink)  
Antiguo 16/05/2008, 12:35
 
Fecha de Ingreso: marzo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: descargar imagen de internet desde php

wow... muchas gracias por sus respuestas... comenzaré a realizar los tests pertinentes... saludos
  #8 (permalink)  
Antiguo 23/04/2011, 21:53
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: descargar imagen de internet desde php

fsockopen no usa allow_furl_open ? me da este error : (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?)
  #9 (permalink)  
Antiguo 23/04/2011, 21:54
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Pregunta Respuesta: descargar imagen de internet desde php

Código PHP:
<?php

    $img 
'http://www.google.cl/logos/laser08.gif'
    
    
$fp fsockopen($img80$errno$errstr30);
    
    
fwrite($fp'img.jpg');
    
    echo 
fgets($fp1024); 
    
    
fclose($fp);

    
?>
  #10 (permalink)  
Antiguo 24/04/2011, 00:50
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: descargar imagen de internet desde php

Otra cosa que puedes hacer es con
Código PHP:
Ver original
  1. $img = file_get_contents('urlaimagenadescargar');
  2.  
  3.  
  4. file_put_conetents('descargada.jpeg', $img);


Saludos,
  #11 (permalink)  
Antiguo 24/04/2011, 01:02
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: descargar imagen de internet desde php

Supongo que también puedes usar cURL...
Para hacer fsockopen a páginas externas también se necesita que la directiva allow_url_fopen esté activada.

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #12 (permalink)  
Antiguo 24/04/2011, 01:20
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: descargar imagen de internet desde php

no file_get_contents y file_put_contents fue lo primero intente y no se puede por estar desactivo allow_url_fopen . cURL intente pero no descarga la imagen o no se como hacerlo sin usar fopen en todos los ejemplos usa fopen alguien sabe como ?
  #13 (permalink)  
Antiguo 24/04/2011, 01:37
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: descargar imagen de internet desde php

es que todo usa fopen :S

Bajate todo a tu pc ( localhost ) y dps lo subes via FTP a tu web
  #14 (permalink)  
Antiguo 24/04/2011, 02:16
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: descargar imagen de internet desde php

Cita:
Iniciado por marcofbb Ver Mensaje
es que todo usa fopen :S

Bajate todo a tu pc ( localhost ) y dps lo subes via FTP a tu web
Es que muchos hosting lo estan desactivando por seguridad dicen... es verdad es un bug de seguridad ? es normal lo hagan y no dejen activarlo ?

estoy intentando con upload curl pero me da error si alguien ayuda ?

Código PHP:
<?php
error_reporting
(E_ALL);
    
    
    require 
'includes/curl.php';
    
    
    
$url 'http://www.google.cl/logos/laser08.gif'

    
$ch curl_init($url);
    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_HEADER0);
    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
     
curl_setopt($chCURLOPT_URL'ftp://[email protected]:[email protected]/imagen.gif');
     
curl_setopt($chCURLOPT_UPLOAD1);
     
curl_setopt($chCURLOPT_INFILEgetSource($url)); // getSource es una funcion cURL que descarga el contenido
     
curl_setopt($chCURLOPT_INFILESIZEgetSource($url)); // getSource es una funcion cURL que descarga el contenido
     
$results curl_exec($ch);
     
$error_no curl_errno($ch);
     
curl_close($ch);
   
    if (
$error_no == 0
    {
        
$error 'File uploaded succesfully.';
    } 
    else 
    {
        
$error 'File upload error.';
    }

    echo 
$error;
    
    
print_r($results);
        
?>
me da este error : Warning: curl_setopt(): supplied argument is not a valid File-Handle resource ... File upload error. alguien tiene idea como lo soluciono sin usar nada fopen ?


gracias
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 11:16.