Esse artigo faz parte da revista Clube Delphi Edição 59. Clique aqui para ler todos os artigos desta edição

Upload no ASP.NET

Transferência de arquivos na Web

 

Oupload (transferência de arquivos de uma máquina cliente para um servidor) é uma tarefa bastante comum no desenvolvimento Web. Neste artigo, desenvolveremos uma pequena aplicação ASP.NET no Delphi 2005 que permitirá fazer o upload de imagens e salvá-la sem disco ou em um banco de dados.

Como veremos, o ASP.NET simplifica bastante esse processo, facilitando a vida do desenvolvedor.

 

Criando a aplicação ASP.NET e configurando o WebForm

No Delphi 2005, crie uma aplicação ASP.NET acessando File|New>ASP.NETWebApplication - Delphi for .NET,dando a ela o nome de "WebUpload”.

Selecione o formulário criado e adicione o controle responsável pela transferência dos arquivos, o HTMLFileUpload da categoria Html Elements. Clique de direita sobre o componente e escolha a opção RunAsServerControl, o que permitirá acesso as suas propriedades e métodos no servidor. Defina seu IDeName como"upFile”. Selecione o objeto Form no Object Inspector e altere a propriedade enctype para multipartlform-data.

Insira no formulário os seguintes controles da categoria Web Controls: um Label ("lbMensagem"), dois Buttons ("btSalvarDisco" e "btSalvarBanco") e um Image ("imgUltimaSalva"). O formulário deverá estar semelhante ao da Figura 1.

Crie uma pasta dentro do diretório da aplicação, chamada "arquivos" (em C:\lnetpub\wwwroot\WebUpload). Os arquivos serão gravados nessa pasta após o upload. A pasta deve ter permissão de escrita para o usuário que executa os processos ASP.NET(por padrão o usuário ASPNET).

 

 

Figura 1.WebForm permite upload de arquivos para o servidor

 

Salvando o arquivo em disco

Digite o código da Listagem 1 no evento Click do botão Salvar em Disco. Vamos analisar um pouco o código utilizado.

A propriedade PostedFile da classe HtmllnputFile contém informações sobre o arquivo transferido. Para salvar o arquivo utilizamos o método SaveAs.Podemos fornecer qualquer nome como parâmetro, mas neste exemplo salvamos o arquivo com o mesmo nome do arquivo original. Como a propriedade FileName contém o nome e o caminho do arquivo na máquina cliente (exemplo c:\windows\figura.bmp), utilizaremos o método GetFileName da classe Path para extrair apenas o nome do arquivo enviado. Para utilizar essa classe adicione o namespace System.ID na seção uses da unit. ...

Quer ler esse conteúdo completo? Tenha acesso completo