1
resposta

[Dúvida] Como fazer upload de imagem por input

Como posso fazer upload de imagens do proprio computador via input? quando tento, o react diz que não é permitido essa ação, mas eu queria que o usuario escolhesse sua foto para colocar no card.

1 resposta

Olá, Samuel!

Para fazer o upload de imagens do próprio computador via input em um projeto React, você precisará de um componente que permita ao usuário selecionar um arquivo e, em seguida, exibir esse arquivo no card de colaborador que você está desenvolvendo.

Primeiro, você precisará de um input do tipo file no seu componente. O código abaixo, precisa de ajuste mas é norte para ti:

import React, { useState } from 'react';

const Colaborador = () => {
  const [imagem, setImagem] = useState('');

  const handleImageChange = (e) => {
    const file = e.target.files[0];
    const reader = new FileReader();
    reader.onloadend = () => {
      setImagem(reader.result);
    };
    reader.readAsDataURL(file);
  };

  return (
    <div className='colaborador'>
      <div className='cabecalho'>
        <input type="file" onChange={handleImageChange} />
        <img src={imagem} alt='Foto do Colaborador' />
      </div>
      <div className='rodape'>
        <h4>Nome do Colaborador</h4>
        <h5>Cargo do Colaborador</h5>
      </div>
    </div>
  );
};

export default Colaborador;

Neste exemplo, criamos um estado imagem para armazenar a imagem carregada. O handleImageChange é um manipulador de eventos que é chamado quando um arquivo é selecionado. Ele lê o arquivo como uma URL de dados usando FileReader, e uma vez que o arquivo é carregado, ele atualiza o estado imagem com o resultado, que é usado como o src para a tag <img>.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!