Bom dia senhores
A minha situação é a seguinte, preciso obter o base64 de um anexo da solicitação para fazer uma chamada rest. Porem o problema é que o usuário ira anexar o arquivo pela chamada do metodo showcamera e fazer a chamada rest na mesma atividade, portanto não consigo utilizar os scripts de processo.
Alguem teria uma forma de fazer isso?
Não sei como o showcamera funciona pra indicar que o anexo foi adicionado pra então poder recuperar esse anexo (na verdade ainda não trabalhei com eventos envolvendo os anexos).
Mas um jeito simples de pegar o base64 de um arquivo no JS seria o seguinte.
Pegar a URL de download do arquivo com o endpoint /2.0/documents/getDownloadURL/{documentId}
De posse da URL você consegue o Base64 assim:
fetch(urlDoArquivo)
.then(response => response.blob())
.then(blob => {
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
// reader.result é o base64
console.log(reader.result);
}
})
Caso você consiga pegar diretamente o arquivo no navegador, após adicionar o anexo, você nem precisaria pegar a URL, pois bastaria utilizar o FileReader direto nesse arquivo.
const attachment = document.querySelector('input[type=file]').files[0];
const reader = new FileReader();
reader.readAsDataURL(attachment);
reader.onloadend = function() {
// reader.result é o base64
console.log(reader.result);
}
2 curtidas
Obrigado pessoal por manter a comunidade ativa. Top dms o conteúdo.
1 curtida