Foros del Web » Programando para Internet » PHP »

Cargar una imagen externa

Estas en el tema de Cargar una imagen externa en el foro de PHP en Foros del Web. Buenos tardes, Mi problema es el siguiente: En una web que estoy desarrollando cargo una imagen que sirve un servidor externo. Lo que pasa es ...
  #1 (permalink)  
Antiguo 09/06/2008, 09:38
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Cargar una imagen externa

Buenos tardes,

Mi problema es el siguiente:

En una web que estoy desarrollando cargo una imagen que sirve un servidor externo. Lo que pasa es que hay veces que no me la carga por el motivo que sea (el servidor externo está muy cargado, tada en resolver, etc.). Lo que quiero es hacer un script con php para solicitar la imagen y cuando esta esté disponible, guardarla en mi espacio web, y en las próximas peticiones, volver a solicitarla, y si no está disponible en ese momento, mostrar la anterior.

Muchas gracias.
Saludos.
  #2 (permalink)  
Antiguo 09/06/2008, 09:41
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Cargar una imagen externa

Bueno, y cual sería el problema que te impide hacerlo ??
O sea, que es lo que no sabes hacer ??
__________________
__________________
Álvaro Lapacó
  #3 (permalink)  
Antiguo 09/06/2008, 09:53
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Cargar una imagen externa

No se por donde empezar, soy nuevo en php.

Por ejemplo, solicitar la imagen al servidor externo.

Guardarla en un directorio de mi servidor.


Gracias.
  #4 (permalink)  
Antiguo 09/06/2008, 11:58
Avatar de alapaco  
Fecha de Ingreso: septiembre-2003
Ubicación: Caballito - Buenos Aires - Argentina - América del Sur - Planeta Tierra - Sistema Solar - Vía Láctea
Mensajes: 216
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Cargar una imagen externa

Bueno, podrías hacer algo así:

Código PHP:
$nombre_archivo "<<RUTA_IMAGEN>>";
if (
$gestor fopen($nombre_archivo"rb")) {
    
// Leo el archivo..
    
$contenido stream_get_contents($gestor);
    
fclose($gestor);

    
// Guardo el archivo..
    
$gestor fopen("<<RUTA_ARCHIVO_DESTINO>>"'a'))
    
fwrite($gestor$contenido); 
    
fclose($gestor);
}
else
    echo 
'<img src="IMAGEN_DE_MI_SERVIDOR" />'
Si tienes alguna duda puntual sobre una función de PHP la puedes consultar aquí.
__________________
__________________
Álvaro Lapacó
  #5 (permalink)  
Antiguo 09/06/2008, 12:29
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Cargar una imagen externa

Muchas gracias po respondes.

Más o menos es como tenía intención de hacerlo por lo que he visto en la web.
Lo que pasa es que me da un mensaje de error:

Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /index.php

Deduzco que esta opción no está disponible.

Quería saber si hay alguna manera de hacerlo mediante un get o algo así.

Editado:

Ya he conseguido guardarlo, pero solo si abro un archivo de mi servidor, si intento algo fuera nada.

Última edición por francisco82; 09/06/2008 a las 13:26
  #6 (permalink)  
Antiguo 10/06/2008, 13:16
 
Fecha de Ingreso: junio-2008
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Cargar una imagen externa

solucionado lo de abrir el archivo de la siguiente manera:

archivo: php.ini

en el directorio con lo siguiente: allow_url_fopen = On

Es peligroso? como puedo saber si al solicitar un archivo no me dan otra cosa, es decir, yo pido una foto, y quiero saber si es una foto o un script o lo que sea.
¿Es posible?

Solucionado:

$file = "url";
if($archivo = imagecreatefromjpeg($file)){
echo 'Es Jpg';
}

Última edición por francisco82; 10/06/2008 a las 13:50
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 02:05.