Neste artigo você vai aprender a como exibir miniatura de imagem enviada em formulário, para que o usuário veja um preview da imagem inserida
Conteúdo também disponível em vídeo:
Fala programador(a), beleza? Bora aprender mais sobre JavaScript e também upload de imagens!
E você deve estar se perguntando, por que JavaScript? Qual a sua relação com a imagem enviada?
Vamos fazer a exibição via evento de JavaScript, desta forma podemos mostrar ao usuário qual imagem ele está enviando para o servidor sem que a página recarregue
Para isso vamos precisar de uma estrutura considerável, veja o HTML:
<form action=""> <input type="file" id="image" name="image"> <div> <input type="submit" value="Enviar"> </div> </form> <img src="" alt="" id="preview-image">
Aqui criamos um pequeno formulário apenas com os campos necessários para o exemplo
O seu pode ser maior, não terá influência no restante do código
Por fim adicionamos um elemento de imagem sem src, que é onde a nossa miniatura será encaixada após o evento de inserção no formulário
Agora vamos ao código JavaScript necessário:
const input = document.querySelector('#image'); input.addEventListener('change', function(e) { const tgt = e.target || window.event.srcElement; const files = tgt.files; const fr = new FileReader(); fr.onload = function () { document.querySelector('#preview-image').src = fr.result; } fr.readAsDataURL(files[0]); });
Aqui temos bastante coisa acontecendo ao mesmo tempo
Primeiramente inserimos o input de imagem em uma variável, o que torna possível criar um evento no elemento
E então adicionamos um evento change, que é ativado quando o usuário insere uma imagem no input
No evento encapsulamos os arquivos na variável files, e também inicializamos FileReader, uma biblioteca do próprio JavaScript para tratar arquivos
Por fim, substituímos o src da nossa tag de img, que até então está vazio, por o resultado da imagem enviada
Exibindo assim o preview da imagem no nosso HTML, sendo possível o visitante do nosso site checar qual imagem está enviando no formulário
Conclusão
Neste artigo aprendemos a como exibir miniatura de imagem enviada em formulário
Utilizamos um evento no input do formulário, para poder saber a hora que o usuário está enviando a imagem
Depois no evento lemos a imagem através do FileReader, e exibimos na nossa tag de imagem no HTML base
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube