DICAS .NET

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

ASP.NET 2.0 - FileUpload

por Mauricio Junior em 1/1/2011 0

ASP .NET 2.0

FileUpload

 

 

No ASP.NET 1.0/1.1 para fazer upload de arquivos nós tínhamos que trabalhar com o HTML FileUpload. Neste  controle <input type=”file”> precisávamos fazer algumas modificações para podermos utilizá-lo,  como habilitá-lo para ser um Server Control onde teriamos acesso as suas propriedades e também adicionar a tag enctype=”multipart/form-data” no form da página.

 

Com o ASP.NET 2.0 não precisamos mais fazer nada disso, agora nós temos o Server Control FileUpload e o objetivo deste artigo é mostrar como trabalhar com este componente.

 

Criação do projeto

1.    Crie um New Web Site chamado Upload. Linguagem C#.

1.1.                    No arquivo Default.aspx digite o código abaixo, conforme Listagem 1.

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Upload.aspx.cs" Inherits="Upload" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Untitled Page</title>

</head>

<body>

    <form id="form1" runat="server">

        <asp:FileUpload ID="FileUpload1" runat="server" />

        <p>

            <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="Button1_Click" /></p>

        <p>

            <asp:Label ID="lblMensagem" runat="server"></asp:Label></p>

    </form>

</body>

</html>

Listagem  1 – Código HTML - FileUpload.

 

 

O código acima possui um componete FileUpload, um botão onde vamos digitar o código e um label que irá exibir mensagens como o tamanho e o tipo de arquivo.

Na Figura 1 podemos ver nossa página em modo de Design.

 


Figura 1 – Página em mode de Design.

 

1.      Nosso próximo passo é codificar o botão, de um clique duplo no btnUpload e digite o código conforme Listagem 1.

 

protected void btnUpload_Click(object sender, EventArgs e)

    {

        if (FileUpload1.HasFile)

            try

            {

                FileUpload1.SaveAs("C:\\MeusUploads\\" + FileUpload1.FileName);

                lblMensagem.Text = "Nome do arquivo: " +

                FileUpload1.PostedFile.FileName + "<br>" +

                FileUpload1.PostedFile.ContentLength + " kb<br>" +

                "Tipo de arquivo: " +

                FileUpload1.PostedFile.ContentType;

            }

            catch (Exception ex)

            {

                lblMensagem.Text = "ERRO: " + ex.Message.ToString();

            }

        else

        {

            lblMensagem.Text = "Selecione o arquivo.";

        } 

  }

Listagem  2 – Código do botão btnUpload

 

 

O código da Listagem 2 começa verificando se o usuário selecionou algum arquivo, caso não tenha selecionado ele informa uma mensagem e sai do código, se ele selecionou é feito o upload para a pasta MeusUploads e no label é exibido o nome do arquivo, o tamanho e o tipo de arquivo, caso ocorra algum erro nós  utilizamos o Try / Catch. Veja na Figura 2 um upload realizado.

 

Figura 2 – Upload

 

Caso ocorra erros de permissão, conceda a conta ASP.NET Machine Account direito sobre a pasta na qual você trabalhando com o Upload, no meu caso MeusUplods.

 

 

 

 

 

 

 

 

 

 

 

 

Uma outra modificação que pode ser feita é limitar o tamanho do arquivo. No arquivo Web.Config digite conforme a Listagem 3. No exemplo o tamanho máximo de Upload é de 4096 KB.

 

 

<httpRuntime

idleTime=”15”

executionTimeout=”90”

maxRequestLength=”4096”

useFullyQualifiedRedirectUrl=”False”

minFreeThreads=”8”

minLocalRequestFreeThreads=”4”

appRequestQueueLimit=”100”

/>

Listagem  3 – Arquivo Web. Config.

 

 

 

Pode alterar para 10 MB altero o maxRequestLength=”11000” .

 

Com isto podemos fazer facilmente upload em nossos projetos.

 

 

 

 

Abraços e até o próximo.

voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comentado por: Paulo César - 1/2/2007 15:02:21
Fábio,

Adorei o artigo. Estou desenvolvendo uma aplicação e este tópico foi muito importante, uma vez que sou iniciante no C# ( e visual estudio). Parabéns pela simplicidade e clareza no artigo.
Comentado por: Danei Lahm - 14/6/2007 11:15:14
O tópico é de grande relevância, mas o componente FileUpload tem sérios problemas de funcionamento quando a página utiliza Ajax, como resolver, se é que existe solução para este tipo de problema?
Comentado por: renan - 4/7/2007 11:03:01
Não deu certo, ele sempre ta falso no hasfile.
Comentado por: Renan - 4/7/2007 11:08:39
Oi fábio, venho a lhe enviar esse e-mail por conta de meu desespero, estou a 4 dias "googleando" procurando sobre fileUpload.
Eu queria fazer exatamente o que vc fez em seu tópico, sendo ele: http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=133

Nele vc faz um label receber o caminho do arquivo, e eu queria fazer exatamente isso, porém na linha
do if(FileUpload1.HasFile) a variável HasFile sempre está como false, mesmo que eu selecione qualquer arquivo do micro.

Se vc pudesse me ajudar com isso eu lhe agradeceria muito, alias só de ler esse comentario eu ja lhe agradeço.
Comentado por: Rodrigo - 4/1/2008 10:46:08
Realmente não funciona com ajax
Comentado por: Michelle - 14/1/2008 11:12:42
Ola!!
Gostaria de agradecer pelo artigo.
O sitema não carregava arquivos grandes...
Precisei definir o tamanho...
Obrigado pela dica..
bjao!!
Comentado por: Nélio Henrique Neves - 25/1/2008 0:57:19
Cara, ótimo esse artigo.. Mto simples e funcional, me ajudou muito mesmo. É por essas e outras que eu adoro o C#.
valeu. abraços.
Comentado por: Renato - 20/3/2008 0:00:00
Excelente tutorial
Comentado por: serialdaemon - 7/1/2009 0:00:00
Solução

http://www.codeplex.com/fileuploadajax/release/projectreleases.aspx?releaseid=8061
Comentado por: Jansle Paulo - 23/6/2009 0:00:00
Mto bom
obrigado pela dica

Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Web 2.0 - A máquina somos nós
Label Server Control AccessKey
Desktop Linux Ubuntu
Dica ASP.NET para alerta e nova página
Confirm Button com JavaScript
Novo SO Palm, depois da venda...
Ebook: Desenvolvendo WebServices
GMaps com ASP.NET
Organizando o projeto em camada
LG Optimus Black
Orientação a Objetos com Visual Studio.NET (parte 2)
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Insistência com Vírus por E-mail
Tópicos: Criptografia de Dados
iMove Developer: chegou para te ajudar
Criando Help com Visual Studio.NET
Sistema de Login em ASP – Parte X
Criando XML a partir de um DATASET tipado – Parte II
Vídeos SQL Server 2005 Express Gratuitamente
Finanças para os filhos
Gravando erros com eventlog - Parte I
Membership
Criando Sections Customizados
Themas - Muito Simples
Join DataTable
Servidor Integrado - Visual Studio.NET
Criando menu dinâmico com C#.NET (Passo 2) - Com diferenciação de usuário
Entrevista com Bruno PorKaria
Vídeos para download
Arrumando seu Desktop
Conecte - Os games
Prepare o Sql Server para o VS 2005
Trabalhando com GridView e RowCommand
Filtrar o DataTable Dinamicamente
Vídeo: Imagem Efeito




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Notebook 3D ou 4K?

Notebook vem com tudo...

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...




NETITC