Erro ao decodificar imagem em base64
07/04/2020
0
Olá pessoal. Estou fazendo um app em Flutter e estou com um problema ao decodificar uma imagem em base64. No app eu tiro a foto e a codifico usando fotobase64 = base64.encode(File(filePath).readAsBytesSync()) , onde filePath é o caminho da foto tirada. Se logo em seguida eu usar Image.memory(base64.decode(fotobase64)) eu consigo exibir a foto normalmente. O problema ocorre quando eu salvo essa fotobase64 no Mysql. Quando eu leio a string salva no Mysql e tento usar novamente Image.memory(base64.decode(string)) dá o seguinte erro: FormatException: Invalid length, must be multiple of four (at character 65536)
Já tentei usar base64.normalize seguindo algumas sugestões, mas não funcionou. Alguém saberia me explicar porque esse erro só aparece depois que eu salvo a foto no banco de dados e depois a recupero para tentar mostrá-la ??
Já tentei usar base64.normalize seguindo algumas sugestões, mas não funcionou. Alguém saberia me explicar porque esse erro só aparece depois que eu salvo a foto no banco de dados e depois a recupero para tentar mostrá-la ??
Cristiano
Curtir tópico
+ 0
Responder
Posts
10/04/2020
Cristiano
Descobri o porquê do erro acima. Foi porque no banco de dados Mysql, o tipo de campo para armazenar ao foto codificada estava como Blob, e o tamanho da string em base64 estava excedendo o tamanho máximo do campo, ou seja, não estava gravando toda a string em base64. Foi só mudar o tipo de campo para longblob e o problema foi resolvido.
Responder
Clique aqui para fazer login e interagir na Comunidade :)