PC SOFT
ONLINE REPOSITORY
FOR WINDEVWEBDEV AND WINDEV MOBILE

Home |  | Sign in | English US
Exemplo Upload Imagem to Database Buffer and Encode64
Published by Boller
in the category Tools
New features



Description
Exemplo Upload Imagem to Database Buffer and Encode64

DOC/HELP
https://forum.PC SOFT.fr/en-US/PC SOFT.br.WINDEV/1268-trabalhando-com-byte-array-3546/read.awp

Nossos clientes as vezes mandam protocolos impressos e gostaria de digitalizar e gravar no HFSQL.

Qual seria o melhor método?

Gravar a imagem dentro do banco ou criar um link das imagem em uma pasta?

Alguém tem exemplo disso ?

Tudo depende do teu gosto as duas funcionam (base binária ou link ftp httprequest)

O campo binário do Hfsql é muito bom


Como eu faço:

- Crio uma tabela t001_pessoas E nela crio os campos Mas não coloco o binário nessa tabela da foto Crio outra tabela t002_pessoas_fotos

Relaciono e coloco o campo binário Isso não vai deixar lento vai funcionar ok e o tamanho do buffer da imagem vai para essa tabela

Funciona muito bem não diminui velocidade de consulta

Só vai transitar na rede a foto somente quando pedir ela

Se der um select *
não terei o buffer da foto transitando na rede sem motivo

Eu acho que é o mais lógico

Se for com link terá que fazer um http request além de um select

Será mais complexo, mas vai funcionar

Serão 4 operações e com a tabela binária, reservar o link numa variável e consultar com httprequest e depois um httpgettesult.

E um select com inner join 2 operação tem o resultado em um buffer ou em um array de string encode64 que terá que converter para buffer

Guardar no banco terá um consumo a mais de espaço, mas é bem simples e garantido :-)

Se for link se for ip e trocou para DNS ou para outro ip ou DNS daí o link ficou inútil, não vai baixar :-(



//Busca Foto

EDT_Foto = ""

EDT_PathArquivo = ""

sPhoto is string = ""

ImagemBuffer is Buffer = ""

bufKey is Buffer = ""

ImagemString is string = ""

sPhoto = fImageSelect(fExeDir,“”,"")

IF sPhoto ~= “” THEN

RETURN

ELSE

ImagemBuffer = fLoadBuffer(sPhoto)

//ImagemString = Crypt(ImagemBuffer,"",cryptAnsi+compressLZW,encodeBASE64)

//ImagemString = Crypt(ImagemBuffer,"",cryptFast,True)

//ImagemString = Crypt(ImagemBuffer,"",cryptNone)

ImagemString = Crypt(ImagemBuffer,"",cryptNone,encodeBASE64)

EDT_Foto = ImagemString

IMG_Foto = sPhoto

ExecuteProcess(IMG_Foto,trtChange)

END




-------



//Incluir

IF EDT_Matricula <> "" AND EDT_Nome <> "" AND EDT_Foto <> "" THEN

FotoEncode64 is string = Encode(EDT_Foto,encodeBASE64)

ok is boolean = HExecuteQuery(QRY_Insert_FotoTaxista,hQueryDefault,EDT_Matricula,EDT_Nome,EDT_Foto,FotoEncode64)

IF ok = True THEN

Info("Gravou")

ELSE

Info(ErrorInfo())

END

TableDisplay(TABLE_NG0021_FotoTaxista,taReExecuteQuery)
TableDisplay(TABLE_NG0021_FotoTaxista,taInit)

ELSE
Info("Campos obrigatorios em branco")
END



-----


//Le registro

ImagemBuffer is Buffer = ""

EDT_Matricula = TABLE_NG0021_FotoTaxista[TABLE_NG0021_FotoTaxista].COL_Matricula

EDT_Nome = TABLE_NG0021_FotoTaxista[TABLE_NG0021_FotoTaxista].COL_Nome

EDT_Foto = TABLE_NG0021_FotoTaxista[TABLE_NG0021_FotoTaxista].COL_Foto

//ImagemBuffer = Uncrypt(EDT_Foto,"", compressLZW+cryptAnsi,encodeBASE64)

//ImagemBuffer = Uncrypt(EDT_Foto,"", cryptFast,True)

//ImagemBuffer = Uncrypt(EDT_Foto,"", cryptNone)

//ImagemBuffer = Uncrypt(EDT_Foto,"1234", cryptFast)
ImagemBuffer = Uncrypt(EDT_Foto,"",cryptNone,encodeBASE64)

IMG_Foto = ImagemBuffer

ExecuteProcess(IMG_Foto,trtChange)


Illustrations, screen shots
none
none
User reviews
(To evaluate this resource, click 'Write a review')
No review or comment? Be the first one!