Saludos estimados,
Necesito grabar una imagen .PNG en un campo de una tabla MySql y luego recuperarla para mostrarla.
Quien me da alguna orientación?
If lModImg
Function GrabarFoto(cLogo) // ruta completa de la imagen
cChr := StrToHex(MemoRead( cLogo ) ) // tiene que estar en archivo
oCn:Update( "general", {"logotipo"}, {cChr}, "registro = " + cReg ) // guardar en MEDIUMBLOB
EndIf
Return(NIl)
Function LeerLogotipo(oCn, oImagen, lBmp)
local cDat, oDat, cIMg, cFilRt, nHnd, oImg
DEFAULT lBmp := .f.
cDat := "SELECT logotipo FROM general LIMIT 1"
oDat := SQLQry(oCn, oDat, cDat)
If EMPTY(oDat:logotipo)
Return(oImagen)
EndIf
oImg := oDat:logotipo
IF !EMPTY(oImg)
TRY
cImg := HexToStr(oImg)
CATCH
Return(oImagen)
END
If !lBmp
oImagen:SetSource(cImg)
Else
oImagen:LoadImage(cImg)
Endif
EndIf
Return(oImagen)
cRutaFoto := "c:\miruta\imagen.png"
rutaTXT := "c:\miruta\imagen.txt"
fMimeEnc( cRutaFoto, rutaTXT ) //Convertimos la imagen o cualquier archivo, en texto base64
cText := MemoRead( rutaTXT ) //Recuperamos el texto
cText := STRTRAN(cText,CRLF,'') //Lo limpiamos
y con esta variable cText a la base de datos en un campo de tipo MEDIUMTEXT
cVar:= "SELECT * FROM tabla WHERE campo=variable"
oRs := FW_OPENRECORDSET(oCn,cVar,adLockOptimistic,adOpenKeyset)
if oRs:RecordCount()#0
uArch := hb_base64decode( oRs:Fields("campo"):Value )
oFto:SetSource( uArch ) //Aqui la asigamos al objeto ximage, pero la puedes colocar si quieres en el disco duro
oFto:refresh()
else
oFto:SetSource( cRutaNoF )
oFto:refresh()
endif
oRs:close()
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: MGA and 46 guests