INPUT FILE SALVAR CAMINHO DA IMAGEM

 Tópico anterior Próximo tópico Novo tópico

INPUT FILE SALVAR CAMINHO DA IMAGEM

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#480823 - 12/04/2018 11:09:53

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Bom dia, pessoal, gostaria de saber como faço para pegar o caminho de um imagem que o usuário selecionou e gravar no banco de dados.
Aqui, crio o botão para o usuário selecionar a imagem e visualizar e os botões Salvar e Cancelar:
<input type="file" onchange="loadFile(event)" />
<img id="output" />

@using (Html.BeginForm())
{
<input type="submit" value="Salvar" class="btn btn-success" />
<button onclick="location.href='@Url.Action("Index/", "Artistas")';return false;" class="btn btn-danger">Cancelar</button>
}



Essa é a função que carrega a imagem:
<script>
    var loadFile = function (event) {
        var output = document.getElementById('output');
        output.src = URL.createObjectURL(event.target.files[0]);
    };
</script>



A Controller está assim:
      public ActionResult Salvar([Bind(Include = "Id,Nome,Logotipo")] Artista artista)
        {
            if (ModelState.IsValid)
            {
                db.Artista.Add(artista);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(artista);
        }


Como fazer que ao clicar no botão Salvar, pegue o caminho da imagem e salve no BD?

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




Resposta escolhida #480824 - 12/04/2018 11:13:05

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Você não pode fazer isso em plataforma Web. Você precisa fazer o upload da imagem.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#480829 - 12/04/2018 12:17:35

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


E qual a maneira correta de se fazer isso?

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




#480832 - 12/04/2018 13:07:46

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Veja bem:
Uma página web remota, é renderizada em um browser. Por razões óbvias de segurança, ela não tem acesso ao client fora do browser, o que inclui todo o sistema de arquivos. Se você quer usar puramente Javascript, você precisa usar um input do tipo file, mais ou menos assim:

<input type="file" id="myFile" size="50">


Um exemplo mais completo aqui

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#480839 - 12/04/2018 17:19:30

DJROBERTOSC
BALNERARIO PICARRAS
Cadast. em:Maio/2011


Olá, veja se lhe ajuda eu faço dessa forma.
o imagem.text é um textbox que coloco no form de forma invisível. só para armazenar o caminho da foto.
e depois para gravar no banco eu uso assim :
cmd.Parameters.Add(New SqlClient.SqlParameter("@caminhofoto", SqlDbType.VarChar)).Value = imagem.Text

Neste codigo abaixo o cliente clicka abre o openfiledialog ae clicka na foto. a foto vai para a imagem1.location para exibir no picturebox.
e vai para o imagem.text para depois gravar na tabela. :)
---------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub BTfoto_Click(sender As Object, e As EventArgs) Handles BTfoto.Click
        Dim nomearquivo As String
        Dim bmp
        Dim local As String
        Dim caminho As String
        If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
            nomearquivo = OpenFileDialog1.FileName
            Imagem1.ImageLocation = (nomearquivo)
            Imagem.Text = (nomearquivo)
            bmp = New Bitmap(nomearquivo)
            Imagem1.Image = bmp
      end if
end sub




#480840 - 12/04/2018 17:27:06

DJROBERTOSC
BALNERARIO PICARRAS
Cadast. em:Maio/2011


Putz, Desculpa ae, agora que vi que é para ASP.NET. esse codigo é para VB.NET
Vopu deixar ae pode ajudar alguem, hehehe
Abração ae fera. :)




#480846 - 13/04/2018 01:00:48

DEVMAICON
PORTO ALEGRE
Cadast. em:Março/2018


Última edição em 13/04/2018 01:01:13 por DEVMAICON

no seu input de um nome
<input type="file" onchange="loadFile(event)" name="files" />

no seu controller

public ActionResult Salvar([Bind(Include = "Id,Nome,Logotipo")] Artista artista, List<IFormFile> files){

long size = files.Sum(f => f.Length);
    var filePath = Path.GetTempFileName();

    foreach (var formFile in files)
    {
        if (formFile.Length > 0)
        {
            using (var stream = new FileStream(filePath, FileMode.Create))
            {
                await formFile.CopyToAsync(stream);
            }
        }
    }
}

fonte: https://docs.microsoft.com/pt-br/aspnet/core/mvc/models/file-uploads


É hora de "reprogramar"!


#481017 - 19/04/2018 10:21:07

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Valeu Kerplunk, obrigado por me ajudar mais uma vez, abraço e até mais.


____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PERCIFILHO em 19/04/2018 10:21:20