From: | Norma Cordero Sanchez <norma(at)vico(dot)fciencias(dot)unam(dot)mx> |
---|---|
To: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | [pgsql-ayuda] Re: Large objects |
Date: | 1999-05-19 03:50:31 |
Message-ID: | 199905190350.WAA01584@vico.fciencias.unam.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Victor Manuel Jaquez Leal wrote:
>> > esto para el web, esto es un usuario sube su archivo en texto via una
>> > pagina web, se guarda en la base de datos, y posteriormente el sistema
>> > puede desplegarlo en una pagina web.
>> >
>> > Alguna idea de como hacer esto???
>>
>> ?Qu? te parece esta funci?n en Perl?
>> La utilizo para subir im?genes, pero puedes cambiar la validaci?n del tipo
>> MIME para el tipo que desees subir.
>
>Hola, ya solucione la parte de subir el archivo, ahora lo que no se es como meterlo en la base
>de datos, estoy usando Postgres 6.5, ya cree la tabla con el objeto largo, pero ahora no se
>como meterle info. Alguna idea.
Hola todos.
Juan Manuel:
Tengo un ejemplito, muy simple que quiza te pueda ayudar, esta en PHP, pero
sera simple traducirlo a perl.
<?PHP
/*
EJEMPLIN SIMPLE PARA MANEJAR IMAGENES.
PARA ESTO SE TIENE UNA BASE DE DATOS HECHA ASI:
CREATE TABLE fotos ( nombre text primary key, foto oid );
** EL TIPO DE DATOS ES oid. RECORDAR DAR LOS PERMISOS ADECUADOS A NOBODY (O EL USUARIO QUE CONSULTE LA BASE DE DATOS)
*/
$conexion = pg_Connect( 'localhost', '5432', 'fotos' );
if ( !$conexion )
{
print( "ERROR en conexion" );
exit;
}
$arch_origen = '/usr/local/apache/htdocs/OL/logo.gif';
$arch_dest = '/usr/local/apache/htdocs/OL/bas.gif'; // ESTE DEBE EXISTIR, Y NOBODY DEBE TENER PERMISOS DE ESCRITURA Y LECTURA
$nombre = 'yoyis'; // QUE PUEDE PROVENIR DE UNA FORMA
$query = pg_Exec( $conexion, " SELECT foto FROM fotos WHERE nombre = '$nombre' ; " );
if ( !$query )
print( "Error query" );
else
{
if ( pg_NumRows( $query ) <= 0 )
{
$orden = " INSERT INTO fotos VALUES ( '$nombre', lo_import( '$arch_origen' ) ) ; ";
$query = pg_Exec( $conexion, $orden );
// AQUI GUARDE EN LA BASE DE DATOS LA IMAGEN, EN ESTE MONENTO YA PODRIA BORRAR EL ARCHIVO ORIGEN DE DISCO, Y YA NO AFECTA LOS DAT\
OS DE LA BASE.
if ( !$query )
print( "Error query" );
}
$query = pg_Exec( $conexion, " SELECT foto FROM fotos WHERE nombre = '$nombre' " );
if ( !$query )
print( "Error query" );
$oid_foto = pg_Result( $query, 0, 'foto' );
print( "FOTO ( $nombre ): $oid_foto <P>" );
}
// Y CUANDO SE NECESITE VER LA FOTO:
$query = pg_Exec( $conexion, " SELECT lo_export( fotos.foto, '$arch_dest' ) FROM fotos WHERE nombre = '$nombre' ; " );
if ( !$query )
print( "Error query" );
print( " Foto de $nombre: <P> " );
print( "
<img src=\"Pon_Imagen.php3?$nombre+$arch_dest\">
" );
/*
SI SE QUIERE ELIMINAR LA FOTO EN LA BASE DE DATOS SE EJECUTA EN POSTGRES:
SELECT lo_unlink( $oid_foto ); DELETE FROM fotos WHERE nombre = '$nombre';
*/
pg_FreeResult( $query );
pg_Close( $conexion );
?>
Y EL ARCHIVO Pon_Imagen.php3 (QUE BIEN PUEDE IR EN EL MISMO) ES:
<?PHP
Header( "Content-type: image/gif" );
list( $nombre, $arch_dest ) = $argv;
$foto = ImageCreateFromGif( $arch_dest );
ImageGif( $foto );
ImageDestroy( $foto );
?>
Espero que te sea de utilidad.
NORMA
--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
text : unsubscribe pgsql-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Roberto Andrade Fonseca | 2000-01-12 23:16:36 | Re: Pasar datos a un plano para auditoria |
Previous Message | Carlos Peralta Ramirez | 1999-04-20 11:25:15 | [pgsql-ayuda] Ayuda Urgente , Problemas con copy !!!!!! |