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.