Compartilhar via


Visão geral sobre o controle FileUpload de servidor Web

O controle FileUpload permite a você fornecer aos usuários uma maneira para enviar um arquivo dos seus computadores para o servidor.

Esse tópico contém:

  • Recursos

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Recursos

Você pode usar o controle FileUpload para:

  • Permitir que os usuários carreguem arquivos que você armazena em um local específico no servidor.

  • Limitar o tamanho do arquivo que pode ser carregado.

  • Examinar as propriedades de um arquivo carregado antes de armazenar o arquivo.

Voltar ao topo

Segundo plano

O controle FileUpload permite aos usuários carregar imagens, arquivos de texto ou outros arquivos.O controle FileUpload exibe uma caixa de texto onde os usuários poderão digitar o nome de um arquivo que desejem carregar no servidor.O controle também exibe um botão Browse que exibe um caixa de diálogo de navegação de arquivos.(O caixa de diálogo que é exibida depende o sistema operacional do computador do usuário.) Por motivos de segurança, você não pode pré-carregar o nome de um arquivo no controle FileUpload.

Manipulando arquivos carregados

Quando os usuários tiverem selecionado um arquivo para carregar e, em seguida, enviado a página, o arquivo é carregado como parte da solicitação.O arquivo é armazenado em cache em sua totalidade na memória do servidor.Quando o arquivo tiver concluído o carregamento, seu código da página executa.

Você pode acessar o arquivo carregado nos seguintes aspectos:

Quando seu código é executado, você pode examinar as características do arquivo, como seu nome, tamanho e tipo de MIME, e você pode, em seguida, salvá-lo.Você pode trabalhar com o arquivo como um matriz de bytes ou fluxo.Como alternativa, ambos o controle FileUpload e o objeto HttpPostedFile suportam um método SaveAs que grava o arquivo no disco.

Não há nenhuma limitação inerente em onde você pode salvar arquivos carregados.No entanto, para salvar o arquivo, o processo do ASP.NET deve ter permissão para criar arquivos no local que você especificar.Além disso, o aplicativo pode estar configurado para exigir um caminho absoluto (não um caminho relativo) para salvar o arquivo, que é uma medida de segurança.Se o atributo requireRootedSaveAsPath do elemento de configuração httpRuntime é definido como true (que é o padrão), você deve fornecer um caminho absoluto ao salvar o arquivo carregado.

Observação:

Você pode criar um caminho absoluto baseado na raiz do seu aplicativo, usando o método MapPath da classe HttpServerUtility e passando para o método o operador til (~), que representa a pasta raiz do aplicativo.Para obter mais informações, consulte Caminhos de Site Web do ASP.NET.

O tamanho máximo de arquivo que pode ser carregado depende do valor do parâmetro de configuração MaxRequestLength.Se os usuários tentarem carregar um arquivo que é maior do que o máximo permitido, o carregamento falhará.

Usando o controle FileUpload em atualizações página-parcial

O controle FileUpload foi projetado para ser usado apenas em cenários de postagem e não em cenários de postback assíncrono durante o processamento página-parcial.Quando você usa um FileUpload controle dentro de um UpdatePanel controle, o arquivo deve ser carregado usando um controle que é um PostBackTrigger objeto para o painel. UpdatePanel controls are used to update selected regions of a page instead of updating the whole page with a postback.Para obter mais informações, consulte Visão geral sobre controle UpdatePanel e Visão geral de renderização de página parcial.

Segurança e controle do FileUpload

Usando o controle FileUpload, os usuários podem carregar arquivos potencialmente mal-intencionados, incluindo arquivos de script e arquivos executáveis.Você não pode limitar com antecedência os arquivos que um usuário pode carregar.Se você desejar limitar os tipos de arquivos que um usuário pode carregar, você deve examinar as características do arquivo após o arquivo foi carregado, como extensão de nome de arquivo e o valor da propriedade ContentType do arquivo.

Observação:

Antes de a página ser enviada, você pode usar script de cliente para examinar o nome de arquivo que um usuário digitou na caixa de texto.No entanto, embora possa ser útil executar uma verificação do lado do cliente de nome de arquivo, ele não garante que os usuários não possam carregar um tipo de arquivo inseguro, como um arquivo executável.

Exemplos de código

Como: Carregar arquivos com controle de servidor Web FileUpload

Voltar ao topo

Referência de Classe

A tabela seguinte lista as classes que estão relacionadas ao controle FileUpload.

Membro

Descrição

FileUpload

A classe principal para o controle FileUpload.

Voltar ao topo

Consulte também

Referência

HtmlInputFile