Foros del Web » Programando para Internet » PHP »

bajar un tiff de una bd a un archivo temporal

Estas en el tema de bajar un tiff de una bd a un archivo temporal en el foro de PHP en Foros del Web. Hola , como se puede bajar un archivo, de una bd a un archivo temporal? y ponerlo en un temporal segun el tipo, ejemplo si ...
  #1 (permalink)  
Antiguo 01/08/2006, 10:32
 
Fecha de Ingreso: julio-2006
Mensajes: 20
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta bajar un tiff de una bd a un archivo temporal

Hola , como se puede bajar un archivo, de una bd a un archivo temporal? y ponerlo en un temporal segun el tipo, ejemplo si es tiff seria temp.tiff si es pdf seria temp.pdf.
Gracias
Saludos
  #2 (permalink)  
Antiguo 01/08/2006, 10:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No sé que es "temporal" o en el contexto que lo usas ..

Según entiendo tu necesitas dar el nombre del archivo que vas a descargar según te convenga ..

Que dato guardas en tu BBDD? .. el nombre del archivo original como referencia? (supongo) .. confirma esto.

Si es así y vas a iniciar la "descarga del archivo" .. tienes que usar las cabeceras HTTP correspondientes para indicar que los datos que vas a enviar al cliente son para descargar .. Una de esas cabeceras define el nombre del archivo que tendrá o se ofrecerá cuando se descargue .. es ahí donde pondras tu nombre ...

Código PHP:
<?php
// De alguna forma obtendras o sabras el formato MIME del archivo (no sé como lo haces tu)

header('Content-type: $tipo_archivo');

// Dependiendo de como identifiques el archivo .. por nombre del archivo o por el formato MIME del mismo .. así obtendras la $ext ensión del archivo para concatenarla con tu "cadena" fija: temp ...

// Esta es la cabecera que define entre otras cosas
// el nombre del archivo que se te ofrece cuando lo descargas.
header('Content-Disposition: attachment; filename="tmp.'.$ext.'"');

readfile($archivo);
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 01/08/2006, 11:20
 
Fecha de Ingreso: julio-2006
Mensajes: 20
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta temporal

Lo que estoy haciendo ahora es bajar la imagen a un temporal segun su tipo por ejemplo si es tif lo bajo a un temp.tiff, mi problema ahora es q no lee mas de 4kb este es mi codigo ejemplo si la imagen es gif:
$SQL="SELECT * FROM lib_libreria where campo='19'";
$res = odbc_exec($conn,$SQL);
$img=odbc_result($res,"imagen");
$fp=fopen ("temp/temp.gif","w");
fwrite ($fp,$img);
fclose($fp);

cuando hago esto guarda el temp.gif o la extencion q sea, pero si la imagen extraida de la bd es mayor a 4 kb, guarda solo hasta 4 kb
Nota: tienes razon el tipo lo tengo almacenado tambien, y otros datos mas de la imagen, mi problema ahora es q solo guarda en el temporal hasta 4kb
Gracias
Saludos

Última edición por sanventru; 01/08/2006 a las 11:25
  #4 (permalink)  
Antiguo 01/08/2006, 11:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con el código que presentas "no bajas" tu imagen .. Lo que pasa es que tu "al parecer" trabajas con tu servidor (PHP) en el mismo sitio donde "dejas" tu archivo (o lo generas) físicamente.

Aclara esa situación .. el concepto es -diferente- dejear o crear un archivo en el servidor que "bajarlo" al cliente (navegador que lo pide y que este lo descargue y deje en el directorio de su PC).

Sobre el problema concreto que tienes. Podrías indicar los bytes que vas a escribir:

Código PHP:
fwrite($fp$imgstrlen($img)); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 01/08/2006, 12:19
 
Fecha de Ingreso: julio-2006
Mensajes: 20
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta tamaño de variables

Si tienes razon genero fisicamente el archivo en el mismo server, probe como me dijiste fwrite($fp, $img, strlen($img)); pero igual solo sige generando archivos de hasta 4kb, si le pongo un print $img solo me imprime una parte de la imagen, tal vez el problema sea q la variable $img solo almacena hasta 4kb, ¿Se podria declarar $img con un tamaño determinado(mayor 4kb)? o talvez mofificar el tamaño de las variables en php.ini?
O tambien el problema puede ser aqui: $img=odbc_result($res,"imagen"); por que tambien probe poniendo fwrite($fp, odbc_result($res,"imagen"), strlen($img)); pero igual solo genera 4kb

Gracias

Saludos

Última edición por sanventru; 01/08/2006 a las 12:24
  #6 (permalink)  
Antiguo 01/08/2006, 13:04
 
Fecha de Ingreso: julio-2006
Mensajes: 20
Antigüedad: 11 años, 4 meses
Puntos: 0
Gracias cluster el problema ha estado en el tamaño de variables de odbc lo resolvi modificandolo en php.ini
odbc.defaultlrl=4096 lo cambie por un numero mayor
gracias
  #7 (permalink)  
Antiguo 01/08/2006, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por sanventru
Gracias cluster el problema ha estado en el tamaño de variables de odbc lo resolvi modificandolo en php.ini
odbc.defaultlrl=4096 lo cambie por un numero mayor
gracias
Bueno .. que sirva de experiencia para otras personas.

Por cierto . .siempre que preguntes haz incapié a que BBDD te conectas y por qué método (sobre todo que lo haces por ODBC en tu caso .. aunque en el código de muestra último que pusistes se observa esas funciones ..).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 04/09/2006, 21:30
 
Fecha de Ingreso: junio-2006
Mensajes: 13
Antigüedad: 11 años, 6 meses
Puntos: 0
hola, pues yo tengo un problema parecido, tengo almacenadas imagenes en una bd, dos funciones distintas una para ver la imagen y otra para descargarla, todos los formatos van bien en ambas funciones se abren o se descargan pero el formato tif no logro abrirlo (si descargarlo), he probado abrirlo con varios programas pero en todos me da el mismo error: que no encuentra o no puede acceder al fichero temporal download.tif en una ruta de la carpeta de archivos temporales, ruta que no existe, no la crea en esa carpeta, pq unos si y otros no??
  #9 (permalink)  
Antiguo 04/09/2006, 21:44
 
Fecha de Ingreso: junio-2006
Mensajes: 13
Antigüedad: 11 años, 6 meses
Puntos: 0
yo mismo me contesto: 3w.alternatiff.com aqui esta la solucion.
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 17:43.