segunda-feira, 27 de janeiro de 2014

FileUpload Multiple ASP.NET C#


Neste tutorial estaremos aprendendo como fazer:
- Upload de vários arquivos
- Filtrar a seleção de arquivos
- Selecionar mais de um arquivos
- Salvar em uma pasta.

1º Preparar o layout do site.

Adicione a sessão dentro da tag <form>


<asp:FileUpload runat="server" ID="fuImagem" accept=".jpg,.png" AllowMultiple="True" />

O que é importante aqui?
O atributo accept é responsável por filtrar a seleção dos arquivos. Exemplo
Arquivo de imagem = image/*
Arquivo de video = video/*
Arquivo de audio = audio/*
Mais de um arquivo = .jpg, .png, .bmp

Lista completa dos arquivos suportados Clique aqui

O atributo AllowMultiple é responsável por selecionar mais de um arquivo quando esta setado para true.



2º Preparar o code behind (F7)
Para fazer o upload de vários arquivos é preciso fazer um laço de repetição, nesse caso, estaremos utilizado o for.

O c# guarda os arquivos do controle fileupload em Context.Request.Files.

Feito isso, precisamos tratar um arquivo de cada vez, então, utilizaremos a classe HttpPostedFile que contém as propriedades: nome do arquivo, tamanho, mime type e o arquivo em si.

A seguir um exemplo:

protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < Context.Request.Files.Count; i++)
                {
                    HttpPostedFile file = Context.Request.Files[i];
                    string nome = file.FileName;
                    const string endereco = @"c:\tmp\";
                    file.SaveAs(endereco + nome);
                }

                lblMensagem.Text = "Salvo com sucesso";


            }
            catch (Exception ex)
            {
                lblMensagem.Text = "Houve um erro: " + ex.Message;
            }
        }

A segui uma vídeo aula.





PrintScreen do tutorial.

3 comentários:

  1. Opa, para gravar os registros e as imagens na pasta, ok, mas e para excluir? do banco de dados tudo bem, quero saber como excluir a imagem da pasta.

    ResponderExcluir
    Respostas
    1. 1. Para excluir uma imagem é preciso selecionar a imagem.
      2. Criar uma transação
      3. Remove da pasta.
      4. Remove do banco.
      5. Fechar transação.

      Excluir
  2. Olá!
    Quando seleciono vários arquivos, ele só envia o primeiro arquivo selecionado e os repete conforme a quantidade selecionada. como poderia resolver?

    ResponderExcluir