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 ??
Cristiano

Cristiano

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar