Olá, estou usando o getDocumentContent dentro de um dataset para pegar o conteúdo de um arquivo.
Preciso mandar esse conteúdo em base64 para um serviço via rest. Alguém sabe me dizer como faço essa conversão? O Fluig não reconhece o btoa do Javascript, e também não consegui importar alguma biblioteca java para converter.
Edit: Formas que tentei converter para base64:
var retorno = service.getDocumentContent("user", "senha", 1, 7936, "user", 1000, "arquivo.jpg");
var retornoBse64 = java.util.Base64.getEncoder().encode(retorno);
Porém, isso me entrega algo como "[B@312321"
Também tentei:
var retorno = service.getDocumentContent("user", "senha", 1, 7936, "user", 1000, "arquivo.jpg");
var result = [];
for(var i = 0; i < retorno.length; ++i){
result.push(java.util.Base64.getEncoder().encode(String.fromCharCode(retorno[i])));
}
Mas isso também não traz nada satisfatório.
Obrigado.
Boa tarde Claudio, tentou com
— Diogo Boegershausen 30 de Jul de 2018java.util.Base64.getEncoder().encode(new java.lang.String('minha string').getBytes());
oujava.util.Base64.getDecoder().decode(encodedBytes);
?Diogo, eu tentei, mas para ser sincero, não sei tentei da forma correta. Vc já fez isso antes, sabe se dizer como ficaria? Pq apenas dar um decode no retorno do método não resolve.
— Claudio Neto 30 de Jul de 2018Existe também o método encodeToString no encoder:
— Diogo Boegershausen 31 de Jul de 2018java.util.Base64.getEncoder().encodeToString(retorno);
, que vai te retornar uma String no lugar do byte[]Mano, muito obrigado!!! Eu estava nesse instante iniciando um projeto no Visual Studio para criar um webservice intermediário!!! Caraca, Deus te abençoe! Valeuzão!!!
— Claudio Neto 02 de Aug de 2018