No artigo de hoje, vamos demonstrar uma função que criamos que já deixa o conteúdo do arquivo em Base64.
No passado, nós já demonstramos em como você pode enviar arquivos via WebService ( https://terminaldeinformacao.com/2021/12/08/como-transferir-arquivos-via-webservice-em-advpl/), transformando o conteúdo em uma string em Base64.
Acontece que, pensando em facilitar, transformamos isso em uma User Function, chamada de zFile64. Essa função basicamente funciona da seguinte maneira:
- Ela recebe o nome do arquivo
- Se o arquivo existir, irá instanciar um FWFileReader e usar o método FullRead
- Esse conteúdo será transformado em Base64 usando a função Encode64
Abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zFile64
Função que converte um arquivo para string em Base 64
@type Function
@author Atilio
@since 03/11/2022
@param cArquivo, Caractere, Caminho absoluto do arquivo
@return cString64, Caractere, String em Base 64
@example
u_zFile64("c:\teste\arquivo.pdf")
/*/
User Function zFile64(cArquivo)
Local cConteudo := ""
Local cString64 := ""
Local oFile
//Se o arquivo existir
If File(cArquivo)
//Tenta abrir o arquivo e pegar o conteudo
oFile := FwFileReader():New(cArquivo)
If oFile:Open()
//Se deu certo abrir o arquivo, pega o conteudo e transforma em base 64
cConteudo := oFile:FullRead()
cString64 := Encode64(cConteudo, , .F., .F.)
EndIf
oFile:Close()
EndIf
Return cString64
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Bom dia Muito boa a rotina simples e funcional me ajudou bastante aqui em uma integração….
Bom dia Israel, tudo joia?
Opa, obrigado pelo comentário e feedback, é muita generosidade sua.
Um grande abraço.