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.