Foros del Web » Programando para Internet » PHP »

Como capturar imagen desde URL?

Estas en el tema de Como capturar imagen desde URL? en el foro de PHP en Foros del Web. Me explico, mi problema es el siguiente: Tengo una url de este estilo triple.uvedoble.paginaweb/admin/noticias/subidaimagenes/thumbnail.php?id=8e0cfc8fc27b75e0e60f9c7824f86032 y me devuelve un jpg puro con sus cabeceras y todo, ...
  #1 (permalink)  
Antiguo 26/03/2009, 14:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Como capturar imagen desde URL?

Me explico, mi problema es el siguiente:

Tengo una url de este estilo
triple.uvedoble.paginaweb/admin/noticias/subidaimagenes/thumbnail.php?id=8e0cfc8fc27b75e0e60f9c7824f86032

y me devuelve un jpg puro con sus cabeceras y todo, el problema viene cuando quiero caputar ese jpg con otro php y guardarlo en un archvo. que no tengo manera, alguien me puede esclarecer el asunto por favor?
  #2 (permalink)  
Antiguo 26/03/2009, 15:08
 
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Como capturar imagen desde URL?

Lo que pasa es que se identificador ( id ) que tiene asignado un valor x, resulto de una sesion iniciada en una visita dada, ese id se genera automaticamente en cada visita que realizes, por lo que es imposible capturar la imagen con ese identificador, claro lo podras capturar mientras dure la sesion para ese id, pero una vez que se cierre la sesion se te sera imposible coger nuevamente esa imagen.
  #3 (permalink)  
Antiguo 26/03/2009, 15:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Como capturar imagen desde URL?

Si quieres guardar el contenido binario de la imagen lo mejor es usar cURL para guardar la imagen en un string y luego la escribes en el sistema de archivos usando fopen()/fwrite().

Saludos.
  #4 (permalink)  
Antiguo 26/03/2009, 18:06
isra00
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como capturar imagen desde URL?

Si lo he entendido bien, x siempre tomará el id de la sesión. Entendiendo que utilizas el manejador de sesiones estándar en PHP, se me ocurren dos métodos: el sucio y el limpio. El sucio es

Código PHP:
file_put_contents("archivo_de_imagen"file_get_contents("triple.uvedoble.paginaweb/admin/noticias/subidaimagenes/thumbnail.php?id=" session_id())); 
De este modo haces una petición a tu propio servidor (no hace falta curl) y obtienes la imagen. El modo limpio agrega un poco de complejidad. Imaginemos que thumbnail.php tiene la siguiente estructura

1) Comprobar la sesión
2) Obtener la imagen
3) image_jpeg() para devolver la imagen

Pues bien, de lo que se trataría sería de romper thumbnail.php en dos scripts. El primero se llamaría thumbnail.php y sería una función que ejecutaría lo siguiente:

1) Comprobar la sesión
2) Obtener la imagen
3) Devolver la imagen como salida de la función

Por su parte, el script thumbnail_salida.php haría algo así como
1) include "thumbnail.php"
2) $salida = devolver_thumbnail()
3) echo $salida

De este modo, thumbnail.php junto con el nuevo thumbnail_salida.php imitarían el comportamiento de tu viejo thumbnail.php. Y te estarás preguntando ¿para qué esta complicación? Pues para lograr el objetivo que nos has plantado simplemente tendrías que añadir un script, llamémosle thumbnail_archivo.php:

1) include "thumbnail.php"
2) $salida = devolver_thumbnail()
3) guardar $salida en un archivo

De este modo, tienes la funcionalidad aislada en thumbnail.php y otros dos scripts que pueden utilizarla de maneras diferentes. Esto se llama MODULARIDAD y es una cosa hermosa en la programación jejeje.

Espero que te sirva. Sé feliz.
  #5 (permalink)  
Antiguo 27/03/2009, 01:30
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: Como capturar imagen desde URL?

Chicos, sois geniales y respondeis la mar de rápido, esta tarde probaré lo que comentais en el trabajo y a ver que tal. Asi podré comentar como me ha funcionado la cosa. Muchas gracias. De todas maneras sigo abierto a otras sugerencias.
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 01:48.