NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosNet : Uploadarquivos001
Quer receber novidades e e-books gratuitos?

Upload de Arquivos

Olá Pessoal,

Estamos de volta, e hoje trago para vocês uma das aplicações mais populares da Web, o Upload de Arquivos.

Transferir um arquivo da máquina local para o servidor Web não era tarefa fácil no ambiente ASP e PHP, por exemplo. Existe uma grande complexidade em utilizar os métodos disponíveis para estes ambiente quando o assunto é trabalhar com arquivos no servidor.

No ambiente ASP.Net, a mudança foi revolucionária, tornando esta tarefa fácil e produtiva.

Faremos isso utilizando a linguagem C#, então prepare o ambiente no Visual Studio .Net, ou no WebMatrix.

Crie um novo projeto chamdo UploadDeArquivos

Crie um novo WebForm chamado Upload.aspx. Abra este arquivo.

Agora vamos inserir três controles, um Label identificado por lblResposta, um DropDownList identificado por dropDiretorio, um Button que executará a ação, chamado btnEnviar e um FileField que não é um objeto do tipo WebForm, mas faremos com que ele processe os dados no servidor. Este controle está localizado na guia HTML. Veja a sugestão da interface:

O próximo passo é fazer com que o controle FileField funcione do lado do servidor e obtenha uma identificação que seja possível interagir com ele dentro do ambiente .Net.

Clique  na guia Html. No código Html da aplicação, localize o trecho em que se refere ao file field e acrescente um novo atributo. O Código Html deste controle deverá ficar da seguinte forma:

<INPUT style="Z-INDEX: 105; LEFT: 16px; WIDTH: 248px; POSITION: absolute; TOP: 56px; HEIGHT: 24px" type="file" size="22" runat=server>

O atributo Runat, que está em destaque, é o trecho que devemos adicione para que o controle processe do lado do servidor. Agora volte para a guia Design e selecione novamente o controle FileField. Vá no painel de propriedades e na propriedade Id escreva “MeuArquivo”, sem aspas, é claro.

Agora já podemos ir para o código. Desenvolveremos duas rotinas, uma que carregará os diretórios disponíveis para armazenar o arquivo e outra para o Upload do arquivo.

Importe o seguinte namespace:

using System.IO;

Agora digite o código conforme mostramos abaixo:

private void CarregarDiretorios()

            {

                  //Cria o objeto do tipo directoryInfo baseado no diretório em que aplicação está armazenada

                  DirectoryInfo Di=new DirectoryInfo("C:/Inetpub/wwwroot/UploadDeArquivos");

                  //Indica ao dropDiretorio exibir o nome do diretório

                  dropDiretorio.DataTextField="Name";

                  //Indica que a fonte de dados do dropDiretorio são os subdiretórios da pasta da aplicação

                  dropDiretorio.DataSource=Di.GetDirectories();

                  //Renderiza o controle.

                  dropDiretorio.DataBind();

            }

Esta rotina deverá ser chamada no Page_load:

private void Page_Load(object sender, System.EventArgs e)

            {

                  if(!Page.IsPostBack)

                  {

                        CarregarDiretorios();

                  }

            }

Este código é simples e já foi abordado em um dos meus tutoriais. Leia em Trabalhando com Arquivos.

A próxima rotina verificar se o arquivo a ser transferido foi postado e se o tamanho dele é inferior a 2 Mb, caso contrário, a aplicação mostrará uma mensagem advertindo o usuário.

Digite o código conforme abaixo:

private void EfetuarUpload()

            {

                  //Verifica se o arquivo foi postado

                  if(MeuArquivo.PostedFile.FileName!=string.Empty)

                  {

                        //verifica se o tamanho do arquivo postado é menor que 2Mb

                        if(MeuArquivo.PostedFile.ContentLength<2097152)

                        {

                             //Cria o objeto FileInfo baseado no arquivo postado

                             FileInfo fl=new FileInfo(MeuArquivo.PostedFile.FileName);

                             //Salva o arquivo no diretório selecionado com o nome do arquivo postado

                    MeuArquivo.PostedFile.SaveAs(dropDiretorio.SelectedValue.ToString() + "/" + fl.Name);

                             //Emite a resposta ao usuário

                             lblResposta.Text="Upload efetuado com sucesso!";

                        }

                        else

                        {

                             lblResposta.Text="O tamanho limite para o arquivo é de 2Mb!";

                        }

                  }

                  else

                  {

                        lblResposta.Text="É necessário postar o arquivo!";

                  }

                  }

Este código aparentemente pode ter ficado extenso, mas note que com apenas uma linha de código nós podemos fazer o Upload do arquivo. Basta utilizar o método SaveAs() do objeto FileField, o resto do código é apenas para tratar as particularidades da aplicação.

Esta rotina acima deverá ser executada no evento Click do btnEnviar:

private void btnEnviar_Click(object sender, System.EventArgs e)

            {

                  EfetuarUpload();

            }

Vamos aos testes:

Mostrando os diretórios da pasta da aplicação

Selecionando um arquivo maior que 2MB para testar...

Teste com o arquivo maior que 2MB....

Selecionando um arquivo com tamanho válido....

Upload efetuado!

Confira diretamente na pasta!

É isso aí pessoal,

Espero que tenha sido muito produtiva abordagem deste tema.

Um Abraço e até mais!

Lano de Castro

1 Visão geral do .NET Framework e do CLR
1 Comunicação .NET e VB 6.0 (com Visual Studio.NET 2005) - Parte I
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 1
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 2
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 3
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 4
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 5
1 VB: Menu Principal, Menu PopUp e Arquivos Texto
Visual Studio
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control
1 Visual Web Developer - 2005 - Beta 2 - Introdução
1 ASP.NET 2.0 - Conhecendo o GridView
1 ASP.NET 2.0 - Utilizando o GridView e DetailsView
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control - Parte 2
1 ASP.NET 2.0 - Utilizando o XmlDataSource
1 Envio de e-mail através de formulário web
1 ADO.NET 2.0 - Conhecendo as novidades parte 1
1 Série Visual Source Safe - Parte 1
1 Série Visual Source Safe - Parte 3
1 URL Indexável – Reescrever URL de uma forma amigável
1 Permissão de Página Utilizando Web.Config
1 Usando public interface
1 Trabalhando com o componente TabContainer
1 Adicionando Menu no DataGridView
ASP.NET
1 Conhecendo o ambiente integrado do WebMatrix
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte I
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte II
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte III
1 Acessando um banco de dados facilmente com ADO.Net e Datagrid
1 Desvendando os segredos do Dataset- Parte I
1 Construindo um Sistema de Publicação de Notícias – Parte 1
1 Construindo um Sistema de Publicação de Notícias – Parte 2
1 Construindo um Sistema de Publicação de Notícias – Parte 3
1 Construindo um Sistema de Publicação de Notícias – Parte 4
1 Construindo um Sistema de Publicação de Notícias – Parte 5
1 Login com Perfil de Acesso
1 Guest Book com XML - Parte 1
1 Guest Book com XML - Parte 2
1 Agendando Datas no Calendário com XML
1 Filtrando e Organizando Dados com o Controle DataView
1 Lista de Dados com Subitens – Parte 1
1 Lista de Dados com Subitens – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 1
1 Trabalhando com Arquivos e Diretórios – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 3
1 Sistema de Enquetes baseado em WebServices – Parte 1
1 Sistema de Enquetes baseado em WebServices – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 3
1 Upload de Arquivos
1 Crie seu próprio código de verificação
1 Login e Senha com FormsAuthentication – Parte 1
1 Login e Senha com FormsAuthentication – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 4
1 Sistema de Enquetes baseado em WebServices – Parte 5
1 Sistema de Enquetes baseado em WebServices – Parte 6