Eventualmente nos deparamos com situações em que precisamos, a partir de um site, aplicativo ou similar, enviar alguma imagem para um servidor. Obviamente, existe a possibilidade do upload. Contudo, existe uma outra opção bastante confortável de tratar (em minha opinião, claro), as imagens base64.

Para quem não sabe, imagens base64 são, à grosso modo, a representação de uma imagem em texto (que tem um tamanho considerável, diga-se de passagem). O grande problema está em salvar estas imagens em banco de dados. Dado seu volume, elas tendem a ocupar muito espaço. Desta forma, uma solução encontrada por nós aqui na IWWA foi a de transformar, em lado servidor, este base64 em um arquivo de imagem e retornar durante as requisições a URL relativa ao arquivo.

Através de pesquisas, alcançamos o seguinte código:

Basicamente, este código faz:

  • Captura o caminho real do diretório de trabalho e concatena ao $path desejado (por exemplo, /avatar/user.jpg).
  • Separa os headers dos dados do base 64;
  • Decodifica o base64;
  • Adiciona conteúdo decodificado no arquivo;
  • Retorna objeto que determina se foi criado com sucesso (ou seja, se o arquivo existe) e seus caminhos.

Convém ressaltar que testamos este código com imagens jpg e png.

Deixe uma resposta