Foros del Web » Programando para Internet » PHP »

Necesito mostrar Imagen usando PHP+PostgreSQL??

Estas en el tema de Necesito mostrar Imagen usando PHP+PostgreSQL?? en el foro de PHP en Foros del Web. Hola amigos del foro, antes darles las gracias a todos aquellos que se toman un poco de su tiempo para leer las dudas de muchos ...
  #1 (permalink)  
Antiguo 06/03/2008, 11:14
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Mensaje Necesito mostrar Imagen usando PHP+PostgreSQL??

Hola amigos del foro, antes darles las gracias a todos aquellos que se toman un poco de su tiempo para leer las dudas de muchos de nosotros y ayudarnos en darles solucion

Stoy probando de manera local este proyecto uso S.O. Win XP, tengo instalado el Appserv 2.59 y PostgreSQl 8.2

Al revisar mi BD veo que si inserta el archivo de tipo imagen pero cuando acceso al List_Image.php la imagen no se puede ver en su lugar hay una "X" aqui esta todos los archivos que utilizo

Esta es la estructura de mi tabla Archivo:
Código:
Create table ARCHIVO
(
	codigo_archivo integer NOT NULL,
	archivo_nombre character varying(255),
	archivo_peso character varying(50),
	archivo_tipo character varying(20),
        archivo_bytea Bytea,
 primary key (codigo_archivo)
) Without Oids;
Tengo que mostrar una Imagen uso cuatro (04) formularios:

Form.html aqui ingreso la imagen a subir a la BD
Código HTML:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="600" border="0" cellpadding="3" cellspacing="1" align="center"> 
<FORM enctype="multipart/form-data" method="post" action="Insert.php" name="form1" onSubmit="return validar(this)">
<tr>
<td colspan=2><p><strong>Imagen:</strong> 
<input type="file" name="archivo" size="30" style="border: 1px solid #7F9DB7;">
<input type="submit" value="Subir Imagen" name="enviar">
</tr>
</form> 
</table>
</body>
</html> 
Insert.php aqui el codigo que realiza el insertado a la BD
Código PHP:
<?php
//establece una conexión con la base de datos.
include("Conexion.php");
// archivo temporal (ruta y nombre).
$tmp_name $_FILES["archivo"]["tmp_name"];
// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$type $_FILES["archivo"]["type"];
$size $_FILES["archivo"]["size"];
$nombre basename($_FILES["archivo"]["name"]);
// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$fp fopen($tmp_name"rb");
$buffer fread($fpfilesize($tmp_name));
fclose($fp);
$buffer=addslashes($buffer);//pg_escape_bytea($buffer);
//Archivo Max Codigo
$query_arch=pg_exec($dbh,"SELECT Max(codigo_archivo) AS arch FROM archivo") or die ("Error SQL Archivo");
$data_arch=pg_fetch_array($query_arch);
$max_arch=$data_arch[arch];
$maxi_arch=$max_arch+1
//insertamos los datos en la BD.
$sql "INSERT INTO archivo VALUES ('$maxi_arch', '$nombre', '$size', '$type', '$buffer')";
pg_exec($dbh,$sql) or die ("No se pudo insertar los datos en la base de datos.");
include(
"close_conexion.php");
header("location: List_Image.php");  // si ha ido todo bien
?>
List_Image.php aqui deberia de mostrar la Imagen que esta insertada en la BD pero me muestra una "X"
Código PHP:
<?php
include("conexion.php");
$sql "select max(codigo_archivo) from archivo";
$stat pg_exec($dbh,$sql) or die ("No se pudo ejecutar la consulta");
$row=pg_fetch_row($stat);
echo 
"<img src='View_Thumbnail.php?codigo_archivo=".$row[0]."'>";
echo 
"<table>
<tr>
<td><a href='NewFC_Oseo.php'>.::Regresar::.</a> </td>
<td><a href='DeleteImage.php?id=$row[0]'><img src='images/b_drop.png' title='Elimina Imagen' border='0' height='16' hspace='2' width='16'></a> </td>
</tr>
</table>"
;
include(
"close_conexion.php");
?>
View_Thumbnail.php este archivo es llamado por List_Image.php deberia de crear una miniatura de la imagen
Código PHP:
<?php
// OJO, sólo funciona con imagnes en formato JPEG ...
if(isset($_GET['codigo_archivo'])) {
    include(
"Conexion.php");
    
$sql "SELECT * FROM archivo WHERE codigo_archivo='".$_GET['codigo_archivo']."'";
    
$stat pg_exec($dbh,$sql) or die ("No se puede mostrar Thumb");
    
$imagen pg_result($stat,0,"archivo_bytea");
    
// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG
    
Header ("Content-type: image/jpeg");
    
// Generar el thumbnail:
    // Se crea la imagen desde el campo binario de la BD
    
$img imagecreatefromstring($imagen);
    
// Tamaño del Thumbanil (de la imagen a generar ..)
    
$picsize 100;    
    
// Se obtienen los datos del ancho y alto de la imagen.
    
$new_w imagesx($img);
    
$new_h imagesy($img);
    
// Se calcula la relación alto/ancho
    
$aspect_ratio $new_h $new_w;    
    
// Se ajusta al nuevo tamaño
    
$new_w $picsize;
    
$new_h abs($new_w $aspect_ratio);
    
//Si usan GD version 1.x en adelante
    // Se crea la mascara de la imagen nueva
    
$dst_img imagecreate($new_w,$new_h);
    
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
   // imagecopyresized($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));    
    //Si usan GD versión 2.x pueden sustituir el código de estos bloques por:
    // Se crea la mascara de la imagen nueva
    
$dst_img ImageCreateTrueColor($new_w,$new_h);
    
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));  
    
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
    // El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
    
imagejpeg($dst_img,'',100);
}
?>
Por que no me muestra la imagen ayudenme a solucionar esto porfa gracias
  #2 (permalink)  
Antiguo 06/03/2008, 14:46
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Necesito mostrar Imagen usando PHP+PostgreSQL??

Somos 2 con el mismo problema...
  #3 (permalink)  
Antiguo 08/03/2008, 13:05
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Necesito mostrar Imagen usando PHP+PostgreSQL??

Hola ya encontre la solucion a mi problema

aki les dejo un enlace que lo explica como hacerlo ....y suerte :

http://saezmarcelo.blogspot.com/2006/03/subiendo-archivos-en-tablas-postgresql.html"]http://saezmarcelo.blogspot.com/2006/03/subiendo-archivos-en-tablas-postgresql.html

para ver la 2da parte digiten en google "Subiendo archivos en tablas PostgreSQL con PHP (Parte II) "

y para la 3era "Subiendo archivos en tablas PostgreSQL con PHP (Parte III) " ... suerte
Lee este tema==> Mejoremos la ortografía.

Última edición por BrujoNic; 10/03/2008 a las 05:02
  #4 (permalink)  
Antiguo 10/03/2008, 05:04
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Necesito mostrar Imagen usando PHP+PostgreSQL??

Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
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 16:33.