Foros del Web » Programando para Internet » PHP »

Almacenar imagenes dinamicas

Estas en el tema de Almacenar imagenes dinamicas en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema, necesito almacenar una imagen que me da un webservice pero no se como, el webservice me generar una imagen ...
  #1 (permalink)  
Antiguo 08/09/2010, 12:29
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 9 meses
Puntos: 20
Almacenar imagenes dinamicas

Hola a todos!

Tengo un problema, necesito almacenar una imagen que me da un webservice pero no se como, el webservice me generar una imagen a partir de unos parametros que le paso y despues yo necesito tomar esa imagen y guardarla para poder generar un PDF con ella.

La conexion al webservice la realizo por cUrl este es mi codigo.

Código PHP:
Ver original
  1. $ch = curl_init(); // Iniciamos conexion cURL
  2.     curl_setopt($ch, CURLOPT_URL, $this->host);
  3.     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; WINDOWS; .NET CLR 1.1.4322)');
  4.     curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset'=>'utf-8,*'));
  5.     curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
  6.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  7.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  8.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  10.     curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
  11.     curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  12.     curl_setopt($ch, CURLOPT_HEADER, 0);
  13.     curl_setopt($ch, CURLOPT_POST, 1);
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
  15.     if (defined('CURLOPT_ENCODING')) curl_setopt($ch, CURLOPT_ENCODING, "");
  16.     $this->_buffer = curl_exec($ch); // Almacenamos resultado
  17.     curl_close($ch);
  18.     die;

$this->_buffer es lo que necesito almacenar, eh estado viendo unas paginas en la web donde dan soluciones pero no me resultan no se si sea por que en la url no esta el nombre del archivo.

La url del webservice es mas o menos asi http://webservice.com/api.img

Espero alguien pueda ayudarme, gracias.
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #2 (permalink)  
Antiguo 08/09/2010, 12:43
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 11 meses
Puntos: 17
Respuesta: Almacenar imagenes dinamicas

beto, debes escribir el contenido de tu variable en un archivo, para esto hay varias formas, pero lo más simple es utilizar la función file_put_contents (recuerda que debes tener permisos escritura en donde deseas escribir)

Código PHP:
// ... en el contexto de tu código
file_put_contents("/tmp/file.txt"$this->_buffer ); 

Saludos.
  #3 (permalink)  
Antiguo 08/09/2010, 12:53
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 9 meses
Puntos: 20
Respuesta: Almacenar imagenes dinamicas

DeeR muchas gracias por contestar, si eso fue lo que hice y ya quedo, este es el codigo.

Código PHP:
Ver original
  1. $ch = curl_init(); // Iniciamos conexion cURL
  2.     curl_setopt($ch, CURLOPT_URL, $this->host);
  3.     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; WINDOWS; .NET CLR 1.1.4322)');
  4.     curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset'=>'utf-8,*'));
  5.     curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
  6.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  7.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  8.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  10.     curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
  11.     curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  12.     curl_setopt($ch, CURLOPT_HEADER, 0);
  13.     curl_setopt($ch, CURLOPT_POST, 1);
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
  15.     if (defined('CURLOPT_ENCODING')) curl_setopt($ch, CURLOPT_ENCODING, "");
  16.     $this->_buffer = curl_exec($ch); // Almacenamos resultado
  17.     curl_close($ch);
  18.     $path = APP_PATH.'test/mia.png';
  19.     file_put_contents($path, $this->_buffer);

Oye ahora otra pregunta, el web service crea la imagen con las funciones de gd e imagenes, ya al final solo hace ImagePng para mostrar la imagen.

Existe alguna funcion para poder codificar esa imagen, lo que sucede es que tambien necesito regresar unos parametros mas.

Ejemplo

(
'error' => FALSE,
'referencia' => 136546,
'imagen' => [Aqui que este la imagen codificada...]
)

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana

Etiquetas: almacenar, dinamicas, imagenes
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 21:15.