3
respostas

Receber imagens no ASP.Net Core e salver em EF

Boa tarde,

Alguém sabe me dizer como fazer para receber uma imagem no ASP.Net Core ?

Eu tenho a pagina html que trata de enviar para o servidor:

<form method="post" enctype="multipart/form-data" asp-controller="Produto" asp-action="ImageLoad">
    <div class="form-group">
        <div class="col-md-10">
            <p>Upload one or more files using this form:</p>
            <input type="file" name="files"/>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-10">
            <input type="submit" value="Upload" />
        </div>
    </div>
</form>

Porem não sei como receber essa imagem no, e salvar ela no banco com o entity.

Alguém poderia me ajudar ?

3 respostas

Olá João,

tem este tutorial da microsoft que mostra como fazer um upload de uma e salvar depois no banco. A ideia é que você receberá o arquivo e transformará o conteúdo num array de bytes para armazenar a imagem em si.

Olá Lucas,

É eu já tinha até visto esse post da microsoft, porem ele cria um fileStream, mas eu apenas queria pegar os bytes da imagem e salva eles no banco com o entity.

Mas a minha duvida é saber como recuperar o array de bytes :/.

Entendi. Bom no caso este post da microsoft mostra como você armazena o array de bytes dentro de um modelo como o ApplicationUser. Então a ideia é que quando você recuperar um usuário pelo context, ele já virá com este array de bytes preenchido se tiver uma "imagem" lá dentro. Então a parte de recuperar o array de bytes é apenas buscar o modelo que tem o array de bytes com o Entity.

O que faltaria é você transformar este array de bytes numa imagem. Neste link do stackoverflow mostra como você pode fazer isso. A ideia é que você irá pegar este array de bytes e formatará para uma string no padrão image do html. E o resultado disso você passa na src da tag image.