Recentemente me deparei com uma situação onde devia exibir a foto que estava sendo enviada pelo usuário através do input file
do HTML, isto é, assim que ele carregasse a foto pelo seletor de arquivos, devia exibir como uma prévia.
Nesta aplicação, estava usando React com Hooks mas essa mesma solução pode ser aplicada com Javascript puro!
Então veja como podemos visualizar a imagem que está sendo enviada, na nossa página HTML
Vamos assumir que temos a seguinte estrutura em nosso HTML:
1 | const ProfilePhoto = () => { |
Legal, vamos trabalhar em cima desse input.
A primeira coisa que queremos fazer é selecionar o arquivo que está sendo enviado e construir um FileReader
.
O objeto FileReader permite-nos ler o conteúdo dos arquivos que estão armazenados no computador do usuário de maneira assíncrona, utilizando os objetos File
ou Blob
para especificar o arquivo ou o dado a ser lido!
Mas como? A explicação acima parece muito mais complicada do que realmente é!
Vamos converter isso em código:
1 | const ProfilePhoto = () => { |
Bem mais simples olhando a implementação, não é mesmo?