Busca online em todo site:
Heroes

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




Título do Artigo

ASP.NET 2.0 - FileUpload


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

comente
 


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.

Fábio Galante Mans

fabio@aspneti.com.br

www.aspneti.com – community.net

 



Total de visualizações: 17755
voltar   comente  subir

Autor:


Por:Fabio Galante Mans
Atualmente atua como desenvolvedor de aplicações .NET. Fundador do grupo ASPNETi.COM (www.aspneti.com), graduado em Análise de Sistemas. Site pessoal: www.mans.com.br


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 ESTAR LOGADO

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

Vídeo aula explicando o que é o FreeTextBox e como utilizar em seu projetos ASP.NET.
Membership
Conhecendo o controle Wizard ASP.NET 2.0
Focus()
Exemplos de Queries Linq
Como criptografar a string de conexão no Web.Config.
Definindo o botão padrão.
GridView - Valor total no footer
Utilizando o GridView e DetailsView
Perguntas Mais Freqüentes de ASP.NET
XmlDataSource
CSS no VS 2003
Append Data Bound Items
Padrões de nomenclaturas
Microsoft AdventureWorks Database
Page.Header
Envio de e-mail através de formulário web
Cookies
SmartNavigation – 1.0 e 1.1 MaintainScroll PositionOn Postback – 2.0
Label Server Control AccessKey
ASP .NET 2.0 Cross-Page Posting
Prepare o Sql Server para o VS 2005
Web Administration Tool
Customizando o Membership e Role Provider
Como utilizar CSS no VS 2003
Tudo Sobre DataGrid - (ASP.NET e C#)
Como criar uma tabela dinâmica com ASP.NET
ASP.NET 2.0 - FileUpload

Publicidade:

[sumir] [aparecer]
LAYERDEV




Informaes Online:

Usurios Online: 808
Artigos:  663
Vdeos:  47
PodCast's:  31
Frum:  3098
Empregos:  1226
Usurios Cadastrados: 5794

Categoria de Artigos

Vdeos

Enquete - D sua opinio

 Os podcasts tem sido proveitoso pra você?

 

Colaboradores

Foto Autor autor: Mauricio Junior   
publicou 382 artigo(s).
Foto Autor autor: Júlio Battisti   
publicou 51 artigo(s).
Foto Autor autor: Fabio Galante Mans   
publicou 28 artigo(s).
Foto Autor autor: Kleber Becerra   
publicou 10 artigo(s).
Foto Autor autor: Ramon Durães   
publicou 6 artigo(s).
Foto Autor autor: Ebenézer de Souza   
publicou 5 artigo(s).
Foto Autor autor: Fabio Aguiar   
publicou 4 artigo(s).
NETITC