Trabajar Con Imágenes En MySQL


Subject: Trabajar Con Imágenes En MySQL
Hola, tengo una aplicación en la que guardo en base de datos imágenes en una tabla en formato blob, hasta ahí todo bien, suelo ejecutar un comando como este para insertar las imágenes:

La tabla en la base de datos tiene un ID y un campo blob que se llama "foto"

UPDATE <basededatos>.<tabla> set foto=LOAD_FILE('" & $rutafichero & "') where id='" & $nuevoid & "'

Esto mismo podría ser:

UPDATE <basededatos>.<tabla> set foto=LOAD_FILE('/tmp/<nombrefoto>.<extensi>') where id='<ID>'

Hasta aquí todo bien, puedo insertar en la base de datos las fotos y las puedo recuperar con mi aplicación y tal, el problema lo tengo cuando quiero sacar de mysql esta imagen y guardarla en disco. He visto en algún lado un ejemplo para guardar/extraer de una tabla de sqllite, no obstante no me queda claro como se hace.

Me he acercado a la solución tirando desde mysql la siguiente querry:

Select id,foto into outfile '/tmp/fotoOUTFILE.<extensi>' from <basededatos>.<tabla> where id=<id>;

También lo he probado de esta otra forma:

Select id,foto into dumpfile '/tmp/fotoDUMPFILE.<extension>' from <basededatos>.<tabla> where id=<id>;

Pero en ambos casos me genera un fichero que no puedo abrir (estoy guardando imágenes .gif), así que algo estoy haciendo mal, no sé si este es el uso mas adecuado, he leído en algún lado que se pueden convertir las imágenes a texto para que sea mas manejable en la base de datos de mysql y luego cambiarlo. ¿Sabéis de algún ejemplo?.

Pdata.: Lo simpático del asunto es que abro el MySQL Workbench busco la tabla y con la opción esta de "Open Value in Editor" veo la imágen y hay un control para poder guardarla o hacer lo que sea con ella, pero no sé que hace el Workbench para cargar o descargar la imagen BLOB de la bd, sabéis si hay algun log o alguna ventana que diga que es lo que hace este programa en tiempo real, utilices la opción que utilices, así podría ver que hace el Workbench para guardar la imagen en disco.

Last edited by nakata on Tuesday, 28 November 2017, 14:15; edited 1 time in total
Profile PM  
Subject: Re: Trabajar Con Imágenes En MySQL
Aquí tienes un ejemplo:
https://foro.gambas-es.org/viewtopic.php?f=5&t=3355&p=18840

Es para sqlite, pero vale igual para mysql.

Saludos

Last edited by jguardon on Wednesday, 29 November 2017, 21:28; edited 4 times in total
Profile PM  
Subject: Resuelto, Ya Sé Como Guardar Las Imágenes En Disco
El enlace no me lleva a ningún lado, pero da igual, creo que he encontrado el ejemplo que decías, es el de db-blob-0.0.2, que encontré en el foro y que creo que se puede descargar de aquí: db-blob

shordi escribió: [Ver mensaje]
Aquí tienes un ejemplo:
https://foro.gambas-es.org/viewtopic.php?f=5&t=3355&p=18840

Es para sqlite, pero vale igual para mysql.

Saludos


Al final he resuelto mi duda de la siguiente forma:

$Query = "SELECT id,foto FROM <bd>.<tablaConFotos> WHERE id=<ID>;"
$Res = ModComun.$Con.Exec($Query)
If $res.Available Then
$foto = $Res!foto
If $foto.Data Then
File.Save("/tmp/<NombreDelFichero>.<Extensi>", $foto.Data)
Endif
Endif

No va a ser la solución definitiva ya que mejoraré la Querry para que sea la adecuada al buscar la ID que necesito en cada momento, pero para hacer lo que quería está bien, que es experimentar y marranear un poco con el código . Gracias por tu respuesta!!

Last edited by nakata on Wednesday, 29 November 2017, 09:52; edited 2 times in total
Profile PM  
Subject: Re: Trabajar Con Imágenes En MySQL
El enlace correcto era:

http://foro.gambas-es.org/viewtopic.php?f=5&t=3355

En el curso de gambas tambien lo puse en su dia:
https://cursogambas.blogspot.com.es...-guardar-y.html


Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1067s (PHP: -40% SQL: 140%)
SQL queries: 26 - Debug Off - GZIP Enabled