Como puedo guardar una imagen en mysql

353 views
Skip to first unread message

Hector Colman

unread,
Aug 24, 2013, 6:06:34 AM8/24/13
to publice...@googlegroups.com
Hola a todo. Mi idea es guardar la imagen de los articulos en una tabla

Francisco Sanz

unread,
Aug 24, 2013, 10:52:53 AM8/24/13
to publice...@googlegroups.com
Hola Hector, lo que puedes hacer es convertir la imagen o cualquier archivo en cadena de texto con FILETOSTR y el resultado lo guardas en un campo longtext, yo asi lo he hecho con imagenes que no pasan de 1 mb y me ha funcionado.

Víctor Hugo Espínola Domínguez

unread,
Aug 24, 2013, 1:33:56 PM8/24/13
to publicesvfoxpro
Hola Héctor

Fragmentos de hilos anteriores sobre el tema:


Alfonso Ramirez Diaz aerd...@gmail.com a través de googlegroups.com 
8 jun

para publicesvfoxpro 
Yo lo hago de esta manera.

Lo primero es que uso un campo MEDIUMTEXT o LONGTEXT en MYSQL en SQL SERVER es TEXT

Por ejemplo si la tabla tiene la siguiente estructura :

imagenes ( archivo CHAR(100), imagen MEDIUMTEXT )

1.- Para grabar la imagen sería:

MiArchivo = GETPICT()       && GETFILE() también sirve
MiString = STRCONV(FILETOSTR(MiArchivo),13)
MiArchivo = JUSTFNAME(MiArchivo)
SQLEXEC(lnHandle,"INSERT INTO imagenes ( archivo, imagen ) VALUES ( ?MiArchivo, ?MiString )"
RELEASE MiString

2.- Para recuperar la imagen sería:

SQLEXEC(lnHandle,"SELECT archivo, imagen FROM imagenes","consulta")
MiString = STRCONV(consulta.imagen,14)
MiArchivo = ALLTRIM(consulta.archivo)
STRTOFILE(MiString,MiArchivo)
RELEASE MiString

El STRCONV es solo para codificar en BASE64 y no tener caracteres extraños al momento de guardar en MYSQL o cualquier motor SQL

Este procedimiento te sirve para guardar y recuperar cualquier tipo de archivo, ya sean imagenes, Word, Excel, Pdf, etc.

-------------------------------------------------------------------------------------------------------------------------------

Víctor Hugo Espínola Domínguez <vich...@gmail.com>
10 ago

para publicesvfoxpro 
Hola Germán

Ampliando la respuesta de Mapner, es conveniente que los datos sean convertidos a base 64 antes de enviarlos al servidor ( programación defensiva ). El nombre del archivo original es opcional, pero el tipo del archivo es fundamental que lo guardes para que puedas imprimir las imágenes.

*
*-- Método ElegirFoto.Click
*
*-- This.Parent.txtExtArchivoFoto.ControlSource = campo del cursor que tiene la extensión del archivo
*)  This.Parent.txtExtArchivoFoto.Visible = .F.
*  
*-- This.Parent.edtB64Foto.ControlSource = campo memo del cursor con el contenido del archivo en base 64
*)  This.Parent.edtB64Foto.Visible = .F.
*
Local lcExtArchivoFoto, lcNomArchivoFoto, lcB64Foto As String

lcNomArchivoFoto = GETPICT()
If ! Empty( lcNomArchivoFoto )
lcB64Foto = Strconv( Filetostr( lcNomArchivoFoto ), 13 )
lcExtArchivoFoto = Justext( lcNomArchivoFoto )

This.Parent.txtExtArchivoFoto.Value = lcExtArchivoFoto

This.Parent.edtB64Foto.Value = lcB64Foto

This.Parent.imgFoto.PictureVal = Filetostr( lcNomArchivoFoto )
Else
This.Parent.imgFoto.PictureVal = ""
Endif
*
*-------------------------------------------------------------------------------------------------------------
*
*-- Método Refresh del container de la foto
*
Local lcB64Foto, lcStrFoto As String

lcStrFoto        = ""

lcB64Foto = This.Parent.edtB64Foto.Value

If ! ( Empty( lcB64Foto ) Or Isnull( lcB64Foto ) )
lcStrFoto = Strconv( lcB64Foto, 14 )
Endif

This.imgFoto.PictureVal = lcStrFoto
*
*-------------------------------------------------------------------------------------------------------------
*

Saludos,
Víctor.


El 10 de agosto de 2013 09:56, Germán Montini <gmon...@hotmail.com> escribió:

almonts ( www.ontarioxb.es )

unread,
Aug 26, 2013, 7:17:35 PM8/26/13
to publice...@googlegroups.com
Puedes leer en PortalFox el artículo que escribí hace tiempo sobre este mismo tema.

http://www.portalfox.com/index.php?name=News&file=article&sid=2473

Reply all
Reply to author
Forward
0 new messages