NETITC

 Busca Online:
 

Seja bem vindo(a) Visitante, voc no est logado deseja logar
na comunidade ASPNETi.COM e participar de servios e promoes ? clique aqui.

ASP.NET 2.0 - FileUpload



Data Publicação: 16/1/2006 9:17:18
Total de visualizações: 22322

comente
Diminuir o tamanho das letras Aumentar o tamanho das letras


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.



Total de visualizações: 22322
voltar   comente  subir


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): VOCÊ PRECISA LOGAR

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

Insistência com Vírus por E-mail
Trabalhando com Session
Pagamento via celular
UPLOAD – Enviando imagem pela Internet
Criptografando Senha
Vídeo - Mitos da bateria
Desktop 3D
URL do WebService Dinâmica
Você tem boa postura no trabalho?
Padrões de nomenclaturas
Vídeo - iGas - Sistema de Gasolina Mobile
Tópicos: Criptografia de Dados
TV e Internet, um casamento perfeito
Dicas para programar melhor
Nova geração HTML
Trabalhando com LinkButton dentro do Gridview
Vídeo - Sistema de Atendimento de Clientes
URL Indexável – Reescrever URL de uma forma amigável
Criando Números Aleatoriamente
Armazenando Dados no ViewState Parte II
Certificação - Segunda Chance
Google Chrome no Windows
Trabalhando com Ipersonate e Web
Usando themes ASP.NET 2.0 (Parte 1)
Windows Phone 7, nada como aprender vendo
LER: prevenir ou remediar?
Vírus - Link com Vírus
Generics usando Object DataSource
Web abrindo aplicações locais
Não publicação
Detectando ENTER
Google Sync Mobile
Windows Phone 7 Jump Start
Tata Motors (Grupo TCS)
Membership
Sobre o Autor
  [sumir] [aparecer]
 
Mauricio Junior Maurício Júnior
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 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.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.orgSite pessoal  www.mauriciojunior.org

Informaes Online
Usurios Online: 404
Artigos:  750
Vdeos:  61
PodCast's:  44
Frum:  3128
Empregos:  1385
Usurios Cadastrados: 6163
Publicidade
LAYERDEV




Vdeos Publicados
 

Duas dicas de internet - Google RealTime e OpenDNS

Desconfie sempre da internet e emails

Microsoft Office online no Safari funcionando

Inovação Visual Studio .NET 2010 - parte 4

Office Live online

TAB TAB na ferramenta Visual Studio .NET

Apresentação do IMC - Sistema de Controle de Peso Mobile

Inovação Visual Studio .NET 2010 - parte 3

Inovação Visual Studio .NET 2010 - parte 1

Download de vídeos com o Safari

Criando Chart - Novo componente integrado com o Visual Studio.NET 2010

Serviços: SAC e SMS integrado

Café com TI - Info sobre o Visual Studio.NET 2010 - WebConfig

Café com TI - Info sobre o Visual Studio.NET 2010

Café com TI - Vírus se passando por Correios

Café com TI - Novo jeito de mandar e-mail com vírus

Café com TI - Formatando todo tipo de String

Resolvido erro do Banco do Brasil no browser

Erro no site do Banco do Brasil com o Safari

Duas dicas do Snow Leopard

Incompatibilidade no Snow Leopard

E-mail com vírus, veja os detalhes

Café com TI - Continuando a configuração de Themes no site

Café com Ti - Banner Rotativo

Café com TI - Evento Eco Brasília

Café com TI - Themes dentro do ASPNETi.COM

Café com TI - Trabalhando com o iCal no Macbook

Café com TI - Deixando o rodapé do seu site fixo

Café com TI - Windows 7 sendo utilizado sem qualquer incompatibilidade

Café com Ti - ASP.NET - Explicando o componente ModalDialogExtender do Ajax Toolkit

Café com TI - Indexação de URL com ASP.NET

Café com TI - Configurando Mail para sua conta no HotMail
Enquete ASPNETi.COM
 Os podcasts tem sido proveitoso pra você?

Favor logar para votar
 
Publicidade Vertical
NETITC