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.