Estoy utilizando Appserv2.59, Win XP y lo pruebo de manera local mi proyecto
Eh tomado el codigo de un blog en le cual se inserta la imagen y se visualiza pero en mi codigo de List_Imagen.php hago referencia a un View_Thumbnail.php y es el que necesito implementar pues no se como hacer un thumbnail de una imagen con tipo de dato OID pues como se daran cuenta en el codigo la manera de viualizarlo e ingresarlo es diferente a el ejemplo que hay aqui en el Foro hecho por Cluster
Esta es la estructura de mi tabla
Cita:
Inserto la imagen en la tabla con este codigo:Create table IMAGEN
(
codigo_imagen Integer NOT NULL,
imagen_oid Oid NOT NULL,
imagen_nombre Varchar(100) NOT NULL,
imagen_peso Integer NOT NULL,
imagen_tipo Varchar(20) NOT NULL,
primary key (codigo_imagen)
) Without Oids;
(
codigo_imagen Integer NOT NULL,
imagen_oid Oid NOT NULL,
imagen_nombre Varchar(100) NOT NULL,
imagen_peso Integer NOT NULL,
imagen_tipo Varchar(20) NOT NULL,
primary key (codigo_imagen)
) Without Oids;
Insert.php
Código PHP:
<?php
//establece una conexión con la base de datos.
include("Conexion.php");
if(isset($_POST["enviar"]))
{ // Obtenemos los datos del archivo subido en el formulario
$nombre = $_FILES["archivo"]["name"];
$tamano = $_FILES["archivo"]["size"];
$mime = $_FILES["archivo"]["type"];
$arch_tmp= $_FILES["archivo"]["tmp_name"];
// Verificamos que el archivo se haya subido correctamente
if( $nombre !="" && $tamano!=0 )
{ // Leemos el archivo que se ha subido en el servidor
$fp_arch= fopen($arch_tmp, "rb");
$buffer = fread($fp_arch, filesize($arch_tmp));
fclose($fp_arch);
// Aqui en adelante es necesario trabajar con transacciones
// para asegurar la integridad del archivo
pg_exec($dbh, "BEGIN TRANSACTION");
$oid_archivo= pg_locreate($dbh); // Creamos un OID para nuestro archivo
//Archivo Max Codigo
$query_arch=pg_exec($dbh,"SELECT Max(codigo_imagen) AS arch FROM imagen") 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 = "INSERT INTO imagen VALUES('$maxi_arch', '$oid_archivo', '$nombre', '$tamano', '$mime')";
$RES_insert = pg_exec($dbh, $SQL_insert);
$campo_blob = pg_loopen($dbh, $oid_archivo, "w");
// Escribimos en el OID el archivo previamente leido en buffer
pg_lowrite($campo_blob, $buffer);
pg_loclose($campo_blob);
// Finalizamos nuestra transacción
pg_exec($dbh, "COMMIT TRANSACTION");
}
include "close_conexion.php";
}
header("location: List_Image.php");
?>
View.php
Código PHP:
<?php
include "conexion.php";
if(isset($_GET['codigo_imagen'])) {
// you may have to modify login information for your database server:
$sql = "SELECT * FROM imagen WHERE codigo_imagen='".$_GET['codigo_imagen']."'";
$consulta = pg_exec($dbh,$sql);
if( pg_numrows($consulta) > 0 ){
$row = pg_fetch_object($consulta);
$nombre = $row->imagen_nombre;
$tamano = $row->imagen_peso;
$archivo_oid= $row->imagen_oid;
$tipo_mime = $row->imagen_tipo;
pg_exec($dbh, "BEGIN TRANSACTION");
$campo_blob = pg_loopen($dbh, $archivo_oid, "r");
// Creamos las cabeceras para ver el archivo
header("Content-type: $tipo_mime");
header("Pragma: no-cache");
pg_loreadall($campo_blob);
pg_loclose($campo_blob);
pg_exec($dbh, "COMMIT TRANSACTION");
}
}
include "close_conexion.php";
?>
List_Image.php
Código PHP:
<table width="600" border="0" cellpadding="3" cellspacing="1" align="center">
<tr>
<td><strong>Esta Imagen se insertara en la Ficha</strong></td>
</tr>
<tr>
<td align="center">
<?php
include("Conexion.php");
$sql = "SELECT MAX(codigo_imagen) FROM imagen";
$consulta = pg_exec($dbh,$sql) or die ("No se pudo ejecutar la consulta");
$row=pg_fetch_row($consulta);
echo "<a href=\"#\" onClick=\"popUpWindow('view.php?codigo_imagen=$row[0]', 10, 10, 800, 600)\">
<img src=\"view_thumbnail.php?codigo_imagen=$row[0]\" border=\"0\" /></a>";
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");
?>
</td>
</tr>
</table>