FileUpload Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Exibe um controle de caixa de texto e um botão Procurar que permitem que os usuários selecionem um arquivo a ser carregado no servidor.
public ref class FileUpload : System::Web::UI::WebControls::WebControl
[System.Web.UI.ControlValueProperty("FileBytes")]
[System.Web.UI.ValidationProperty("FileName")]
public class FileUpload : System.Web.UI.WebControls.WebControl
[<System.Web.UI.ControlValueProperty("FileBytes")>]
[<System.Web.UI.ValidationProperty("FileName")>]
type FileUpload = class
inherit WebControl
Public Class FileUpload
Inherits WebControl
- Herança
- Atributos
Exemplos
Um projeto de site do Visual Studio com código-fonte está disponível para acompanhar este tópico: Download.
Esta seção contém os quatro exemplos a seguir:
O primeiro exemplo demonstra como criar um FileUpload controle que salva arquivos em um caminho especificado no código.
O segundo exemplo demonstra como criar um FileUpload controle que salva arquivos em um diretório especificado no sistema de arquivos para o aplicativo.
O terceiro exemplo demonstra como criar um FileUpload controle que salva arquivos em um caminho especificado e limita o tamanho do arquivo que pode ser carregado.
O quarto exemplo demonstra como criar um FileUpload controle que salva arquivos em um caminho especificado e permite que apenas arquivos que têm o .doc ou .xls extensões de nome de arquivo sejam carregados.
Cuidado
Esses exemplos demonstram a sintaxe básica para o FileUpload controle, mas não demonstram toda a verificação de erro necessária que deve ser concluída antes de salvar o arquivo. Para um exemplo mais completo, consulte SaveAs.
O exemplo a seguir demonstra como criar um FileUpload controle que salva arquivos em um caminho especificado no código. O SaveAs método é chamado para salvar o arquivo no caminho especificado no servidor.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void UploadButton_Click(object sender, EventArgs e)
{
// Specify the path on the server to
// save the uploaded file to.
String savePath = @"c:\temp\uploads\";
// Before attempting to perform operations
// on the file, verify that the FileUpload
// control contains a file.
if (FileUpload1.HasFile)
{
// Get the name of the file to upload.
String fileName = FileUpload1.FileName;
// Append the name of the file to upload to the path.
savePath += fileName;
// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);
// Notify the user of the name of the file
// was saved under.
UploadStatusLabel.Text = "Your file was saved as " + fileName;
}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br /><br />
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' Specify the path on the server to
' save the uploaded file to.
Dim savePath As String = "c:\temp\uploads\"
' Before attempting to perform operations
' on the file, verify that the FileUpload
' control contains a file.
If (FileUpload1.HasFile) Then
' Get the name of the file to upload.
Dim fileName As String = FileUpload1.FileName
' Append the name of the file to upload to the path.
savePath += fileName
' Call the SaveAs method to save the
' uploaded file to the specified path.
' This example does not perform all
' the necessary error checking.
' If a file with the same name
' already exists in the specified path,
' the uploaded file overwrites it.
FileUpload1.SaveAs(savePath)
' Notify the user of the name the file
' was saved under.
UploadStatusLabel.Text = "Your file was saved as " & fileName
Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br /><br />
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
O exemplo a seguir demonstra como criar um FileUpload controle que salva arquivos em um diretório especificado no sistema de arquivos para o aplicativo. A HttpRequest.PhysicalApplicationPath propriedade é usada para obter o caminho do sistema de arquivos físico do diretório raiz para o aplicativo de servidor em execução no momento. O SaveAs método é chamado para salvar o arquivo no caminho especificado no servidor.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void UploadButton_Click(object sender, EventArgs e)
{
// Save the uploaded file to an "Uploads" directory
// that already exists in the file system of the
// currently executing ASP.NET application.
// Creating an "Uploads" directory isolates uploaded
// files in a separate directory. This helps prevent
// users from overwriting existing application files by
// uploading files with names like "Web.config".
string saveDir = @"\Uploads\";
// Get the physical file system path for the currently
// executing application.
string appPath = Request.PhysicalApplicationPath;
// Before attempting to save the file, verify
// that the FileUpload control contains a file.
if (FileUpload1.HasFile)
{
string savePath = appPath + saveDir +
Server.HtmlEncode(FileUpload1.FileName);
// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);
// Notify the user that the file was uploaded successfully.
UploadStatusLabel.Text = "Your file was uploaded successfully.";
}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Class Example</title>
</head>
<body>
<h3>FileUpload Class Example: Save To Application Directory</h3>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br/><br/>
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' Save the uploaded file to an "Uploads" directory
' that already exists in the file system of the
' currently executing ASP.NET application.
' Creating an "Uploads" directory isolates uploaded
' files in a separate directory. This helps prevent
' users from overwriting existing application files by
' uploading files with names like "Web.config".
Dim saveDir As String = "\Uploads\"
' Get the physical file system path for the currently
' executing application.
Dim appPath As String = Request.PhysicalApplicationPath
' Before attempting to save the file, verify
' that the FileUpload control contains a file.
If (FileUpload1.HasFile) Then
Dim savePath As String = appPath + saveDir + _
Server.HtmlEncode(FileUpload1.FileName)
' Call the SaveAs method to save the
' uploaded file to the specified path.
' This example does not perform all
' the necessary error checking.
' If a file with the same name
' already exists in the specified path,
' the uploaded file overwrites it.
FileUpload1.SaveAs(savePath)
' Notify the user that the file was uploaded successfully.
UploadStatusLabel.Text = "Your file was uploaded successfully."
Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Class Example</title>
</head>
<body>
<h3>FileUpload Class Example: Save To Application Directory</h3>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br/><br/>
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
O exemplo a seguir demonstra como criar um FileUpload controle que salva arquivos em um caminho especificado no código. O controle limita o tamanho do arquivo que pode ser carregado para 2 MB. A PostedFile propriedade é usada para acessar a propriedade subjacente ContentLength e retornar o tamanho do arquivo. Se o tamanho do arquivo a ser carregado for menor que 2 MB, o SaveAs método será chamado para salvar o arquivo no caminho especificado no servidor. Além de verificar a configuração de tamanho máximo do arquivo no código do aplicativo, você pode definir o maxRequestLength
atributo do elemento httpRuntime como um tamanho máximo permitido no arquivo de configuração do aplicativo.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void UploadButton_Click(object sender, EventArgs e)
{
// Specify the path on the server to
// save the uploaded file to.
string savePath = @"c:\temp\uploads\";
// Before attempting to save the file, verify
// that the FileUpload control contains a file.
if (FileUpload1.HasFile)
{
// Get the size in bytes of the file to upload.
int fileSize = FileUpload1.PostedFile.ContentLength;
// Allow only files less than 2,100,000 bytes (approximately 2 MB) to be uploaded.
if (fileSize < 2100000)
{
// Append the name of the uploaded file to the path.
savePath += Server.HtmlEncode(FileUpload1.FileName);
// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);
// Notify the user that the file was uploaded successfully.
UploadStatusLabel.Text = "Your file was uploaded successfully.";
}
else
{
// Notify the user why their file was not uploaded.
UploadStatusLabel.Text = "Your file was not uploaded because " +
"it exceeds the 2 MB size limit.";
}
}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Class Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br/><br/>
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub UploadButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' Specify the path on the server to
' save the uploaded file to.
Dim savePath As String = "c:\temp\uploads\"
' Before attempting to save the file, verify
' that the FileUpload control contains a file.
If (FileUpload1.HasFile) Then
' Get the size in bytes of the file to upload.
Dim fileSize As Integer = FileUpload1.PostedFile.ContentLength
' Allow only files less than 2,100,000 bytes (approximately 2 MB) to be uploaded.
If (fileSize < 2100000) Then
' Append the name of the uploaded file to the path.
savePath += Server.HtmlEncode(FileUpload1.FileName)
' Call the SaveAs method to save the
' uploaded file to the specified path.
' This example does not perform all
' the necessary error checking.
' If a file with the same name
' already exists in the specified path,
' the uploaded file overwrites it.
FileUpload1.SaveAs(savePath)
' Notify the user that the file was uploaded successfully.
UploadStatusLabel.Text = "Your file was uploaded successfully."
Else
' Notify the user why their file was not uploaded.
UploadStatusLabel.Text = "Your file was not uploaded because " + _
"it exceeds the 2 MB size limit."
End If
Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Class Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br/><br/>
<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
O exemplo a seguir demonstra como criar um FileUpload controle que salva arquivos em um caminho especificado no código. Este exemplo permite que somente arquivos que têm as extensões de nome de arquivo .doc ou .xls sejam carregados. O Path.GetExtension método é chamado para retornar a extensão do arquivo a ser carregado. Se o arquivo tiver uma extensão de nome de arquivo .doc ou .xls, o SaveAs método será chamado para salvar o arquivo no caminho especificado no servidor.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void UploadBtn_Click(object sender, EventArgs e)
{
// Specify the path on the server to
// save the uploaded file to.
string savePath = @"c:\temp\uploads";
// Before attempting to save the file, verify
// that the FileUpload control contains a file.
if (FileUpload1.HasFile)
{
// Get the name of the file to upload.
string fileName = Server.HtmlEncode(FileUpload1.FileName);
// Get the extension of the uploaded file.
string extension = System.IO.Path.GetExtension(fileName);
// Allow only files with .doc or .xls extensions
// to be uploaded.
if ((extension == ".doc") || (extension == ".xls"))
{
// Append the name of the file to upload to the path.
savePath += fileName;
// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);
// Notify the user that their file was successfully uploaded.
UploadStatusLabel.Text = "Your file was uploaded successfully.";
}
else
{
// Notify the user why their file was not uploaded.
UploadStatusLabel.Text = "Your file was not uploaded because " +
"it does not have a .doc or .xls extension.";
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Class Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br/><br/>
<asp:Button id="UploadBtn"
Text="Upload file"
OnClick="UploadBtn_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub UploadBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' Specify the path on the server to
' save the uploaded file to.
Dim savePath As String = "c:\temp\uploads\"
' Before attempting to save the file, verify
' that the FileUpload control contains a file.
If (FileUpload1.HasFile) Then
' Get the name of the file to upload.
Dim fileName As String = Server.HtmlEncode(FileUpload1.FileName)
' Get the extension of the uploaded file.
Dim extension As String = System.IO.Path.GetExtension(fileName)
' Allow only files with .doc or .xls extensions
' to be uploaded.
If (extension = ".doc") Or (extension = ".xls") Then
' Append the name of the file to upload to the path.
savePath += fileName
' Call the SaveAs method to save the
' uploaded file to the specified path.
' This example does not perform all
' the necessary error checking.
' If a file with the same name
' already exists in the specified path,
' the uploaded file overwrites it.
FileUpload1.SaveAs(savePath)
' Notify the user that their file was successfully uploaded.
UploadStatusLabel.Text = "Your file was uploaded successfully."
Else
' Notify the user why their file was not uploaded.
UploadStatusLabel.Text = "Your file was not uploaded because " + _
"it does not have a .doc or .xls extension."
End If
Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload."
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Class Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>
<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>
<br/><br/>
<asp:Button id="UploadBtn"
Text="Upload file"
OnClick="UploadBtn_Click"
runat="server">
</asp:Button>
<hr />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
Comentários
Neste tópico:
Introdução
A FileUpload classe exibe um controle de caixa de texto e um botão procurar que permite aos usuários selecionar um arquivo no cliente e carregá-lo no servidor Web. O usuário especifica o arquivo a ser carregado inserindo o caminho completo do arquivo no computador local (por exemplo, C:\MyFiles\TestFile.txt) na caixa de texto do controle. Como alternativa, o usuário pode selecionar o arquivo clicando no botão Procurar e localizando-o na caixa de diálogo Escolher Arquivo .
Use a FileName propriedade para obter o nome de um arquivo em um cliente para carregar usando o FileUpload controle . O nome do arquivo que essa propriedade retorna não inclui o caminho do arquivo no cliente.
A FileContent propriedade obtém um Stream objeto que aponta para um arquivo a ser carregado. Use essa propriedade para acessar o conteúdo do arquivo como bytes. Por exemplo, você pode usar o Stream objeto retornado pela FileContent propriedade para ler o conteúdo do arquivo como bytes e armazená-los em uma matriz de bytes. Como alternativa, você pode usar a FileBytes propriedade para recuperar todos os bytes no arquivo.
A PostedFile propriedade obtém o objeto subjacente HttpPostedFile para o arquivo carregar. Você pode usar essa propriedade para acessar propriedades adicionais no arquivo. A ContentLength propriedade obtém o comprimento do arquivo. A ContentType propriedade obtém o tipo de conteúdo MIME do arquivo. Além disso, você pode usar a PostedFile propriedade para acessar a FileName propriedade, a InputStream propriedade e o SaveAs método . No entanto, a mesma funcionalidade é fornecida pela FileName propriedade, pela FileContent propriedade e pelo SaveAs método .
Salvando arquivos carregados
O FileUpload controle não salva automaticamente um arquivo no servidor depois que o usuário seleciona o arquivo a ser carregado. Você deve fornecer explicitamente um controle ou mecanismo para permitir que o usuário envie o arquivo especificado. Por exemplo, você pode fornecer um botão que o usuário clica para carregar o arquivo. O código que você escreve para salvar o arquivo especificado deve chamar o SaveAs método , que salva o conteúdo de um arquivo em um caminho especificado no servidor. Normalmente, o SaveAs método é chamado em um método de manipulação de eventos para um evento que gera uma postagem de volta ao servidor. Por exemplo, se você fornecer um botão para enviar um arquivo, poderá incluir o código para salvar o arquivo dentro do método de tratamento de eventos para o evento click.
Antes de chamar o SaveAs método para salvar o arquivo no servidor, use a HasFile propriedade para verificar se o FileUpload controle contém um arquivo. Se o HasFile retornar true
, chame o SaveAs método . Se retornar false
, exiba uma mensagem para o usuário indicando que o controle não contém um arquivo. Não verifique a PostedFile propriedade para determinar se existe um arquivo para carregar porque, por padrão, essa propriedade contém 0 bytes. Como resultado, mesmo quando o FileUpload controle está em branco, a PostedFile propriedade retorna um valor não nulo.
Considerações de segurança
Ao chamar o SaveAs método , você deve especificar o caminho completo do diretório no qual salvar o arquivo carregado. Se você não especificar explicitamente um caminho no código do aplicativo, uma exceção será gerada quando um usuário tentar carregar um arquivo. Esse comportamento ajuda a manter os arquivos no servidor seguros, impedindo que os usuários possam gravar em locais arbitrários na estrutura de diretório do aplicativo, além de impedir o acesso a diretórios raiz confidenciais.
O SaveAs método grava o arquivo carregado no diretório especificado. Portanto, o aplicativo ASP.NET deve ter acesso de gravação ao diretório no servidor. Há duas maneiras pelas quais o aplicativo pode obter acesso de gravação. Você pode conceder explicitamente acesso de gravação à conta na qual o aplicativo está em execução, no diretório no qual os arquivos carregados serão salvos. Como alternativa, você pode aumentar o nível de confiança concedido ao aplicativo ASP.NET. Para obter acesso de gravação ao diretório em execução para o aplicativo, o aplicativo deve receber o AspNetHostingPermission objeto com o nível de confiança definido como o AspNetHostingPermissionLevel.Medium valor. Aumentar o nível de confiança aumenta o acesso do aplicativo aos recursos no servidor. Observe que essa não é uma abordagem segura, pois um usuário mal-intencionado que obtém o controle do seu aplicativo também poderá ser executado sob esse nível mais alto de confiança. É uma prática recomendada executar um aplicativo ASP.NET no contexto de um usuário com os privilégios mínimos necessários para que o aplicativo seja executado. Para obter mais informações sobre segurança em aplicativos ASP.NET, consulte Práticas básicas de segurança para aplicativos Web e ASP.NET níveis de confiança e arquivos de política.
Limitações de memória
Uma maneira de proteger contra ataques de negação de serviço é limitar o tamanho dos arquivos que podem ser carregados usando o FileUpload controle . Você deve definir um limite de tamanho apropriado para os tipos de arquivos que você espera que sejam carregados. O limite de tamanho padrão é de 4.096 quilobytes (KB) ou 4 megabytes (MB). Você pode permitir que arquivos maiores sejam carregados definindo o maxRequestLength
atributo do elemento httpRuntime . Para aumentar o tamanho máximo permitido do arquivo para todo o aplicativo, defina o maxRequestLength
atributo no arquivo Web.config. Para aumentar o tamanho máximo do arquivo permitido para uma página especificada, defina o maxRequestLength
atributo dentro do location
elemento em Web.config. Para obter um exemplo, consulte Elemento location (esquema de configurações de ASP.NET).
Ao carregar arquivos grandes, um usuário também pode receber a seguinte mensagem de erro:
aspnet_wp.exe (PID: 1520) was recycled because memory consumption exceeded 460 MB (60 percent of available RAM).
Se os usuários encontrarem essa mensagem de erro, aumente o valor do memoryLimit
atributo no processModel do elemento Web.config arquivo para o aplicativo. O memoryLimit
atributo especifica a quantidade máxima de memória que um processo de trabalho pode usar. Se o processo de trabalho exceder o memoryLimit
valor, um novo processo será criado para substituí-lo e todas as solicitações atuais serão reatribuídas ao novo processo.
Para controlar se o arquivo a ser carregado é armazenado temporariamente na memória ou no servidor enquanto a solicitação está sendo processada, defina o requestLengthDiskThreshold
atributo do elemento httpRuntime . Esse atributo permite que você gerencie o tamanho do buffer de fluxo de entrada. O padrão é 256 bytes. O valor especificado não deve exceder o valor especificado para o maxRequestLength
atributo .
Usando o controle FileUpload com o controle UpdatePanel
O FileUpload controle foi projetado para ser usado apenas em cenários de postback e não em cenários de postback assíncronos durante a renderização de 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 os controles são usados para atualizar regiões selecionadas de uma página em vez de atualizar a página inteira com um postback. Para obter mais informações, consulte Visão geral do controle UpdatePanel e Visão geral da renderização de página parcial.
Sintaxe declarativa
<asp:FileUpload
AccessKey="string"
BackColor="color name|#dddddd"
BorderColor="color name|#dddddd"
BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
Inset|Outset"
BorderWidth="size"
CssClass="string"
Enabled="True|False"
EnableTheming="True|False"
EnableViewState="True|False"
Font-Bold="True|False"
Font-Italic="True|False"
Font-Names="string"
Font-Overline="True|False"
Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
Large|X-Large|XX-Large"
Font-Strikeout="True|False"
Font-Underline="True|False"
ForeColor="color name|#dddddd"
Height="size"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
SkinID="string"
Style="string"
TabIndex="integer"
ToolTip="string"
Visible="True|False"
Width="size"
/>
Construtores
FileUpload() |
Inicializa uma nova instância da classe FileUpload. |
Propriedades
AccessKey |
Obtém ou define a tecla de acesso que permite navegar rapidamente para o controle do servidor Web. (Herdado de WebControl) |
Adapter |
Obtém o adaptador específico de navegador para o controle. (Herdado de Control) |
AllowMultiple |
Obtém ou define um valor que especifica se vários arquivos podem ser selecionados para upload. |
AppRelativeTemplateSourceDirectory |
Obtém ou define o diretório virtual relativo de aplicativo do objeto Page ou UserControl que contém este controle. (Herdado de Control) |
Attributes |
Obtém a coleção de atributos arbitrários (somente para renderização) que não correspondem às propriedades do controle. (Herdado de WebControl) |
BackColor |
Obtém ou define a cor da tela de fundo do controle do servidor Web. (Herdado de WebControl) |
BindingContainer |
Obtém o controle que contém a vinculação de dados desse controle. (Herdado de Control) |
BorderColor |
Obtém ou define a cor da borda do controle Web. (Herdado de WebControl) |
BorderStyle |
Obtém ou define o estilo de borda do controle de servidor Web. (Herdado de WebControl) |
BorderWidth |
Obtém ou define a largura da borda do controle de servidor Web. (Herdado de WebControl) |
ChildControlsCreated |
Obtém um valor que indica se os controles filho do controle de servidor foram criados. (Herdado de Control) |
ClientID |
Obtém a ID de controle de marcação HTML gerada pelo ASP.NET. (Herdado de Control) |
ClientIDMode |
Obtém ou define o algoritmo usado para gerar o valor da propriedade ClientID. (Herdado de Control) |
ClientIDSeparator |
Obtém um valor de caractere que representa o caractere separador usado na propriedade ClientID. (Herdado de Control) |
Context |
Obtém o objeto HttpContext associado ao controle de servidor para a solicitação da Web atual. (Herdado de Control) |
Controls |
Obtém um objeto ControlCollection que representa os controles filho para um controle de servidor especificado na hierarquia de interface do usuário. (Herdado de Control) |
ControlStyle |
Obtém o estilo de um controle de servidor Web. Essa propriedade é usada principalmente por desenvolvedores de controle. (Herdado de WebControl) |
ControlStyleCreated |
Obtém um valor que indica se um objeto Style foi criado para a propriedade ControlStyle. Essa propriedade é usada principalmente por desenvolvedores de controle. (Herdado de WebControl) |
CssClass |
Obtém ou define a classe CSS (Folha de Estilos em Cascata) renderizada pelo controle do servidor Web no cliente. (Herdado de WebControl) |
DataItemContainer |
Obtém uma referência ao contêiner de nomenclatura se o contêiner de nomenclatura implementa o IDataItemContainer. (Herdado de Control) |
DataKeysContainer |
Obtém uma referência ao contêiner de nomenclatura se o contêiner de nomenclatura implementa o IDataKeysControl. (Herdado de Control) |
DesignMode |
Obtém um valor que indica se um controle está sendo usado em uma superfície de design. (Herdado de Control) |
Enabled |
Obtém ou define um valor que indica se o controle do servidor Web está habilitado. (Herdado de WebControl) |
EnableTheming |
Obtém ou define um valor que indica se os temas se aplicam a esse controle. (Herdado de WebControl) |
EnableViewState |
Obtém ou define um valor que indica se o controle de servidor persiste seu estado de exibição e o estado de exibição de quaisquer controles filho que ele contém, para o cliente solicitante. (Herdado de Control) |
Events |
Obtém uma lista de delegados de manipulador de eventos para o controle. Esta propriedade é somente para leitura. (Herdado de Control) |
FileBytes |
Obtém uma matriz de bytes em um arquivo especificado com o uso de um controle FileUpload. |
FileContent |
Obtém um objeto Stream que aponta para um arquivo a ser carregado usando o controle FileUpload. |
FileName |
Obtém o nome de um arquivo em um cliente a ser carregado usando o controle FileUpload. |
Font |
Obtém as propriedades de fonte associadas ao controle do servidor Web. (Herdado de WebControl) |
ForeColor |
Obtém ou define a cor de primeiro plano (normalmente a cor do texto) do controle de servidor Web. (Herdado de WebControl) |
HasAttributes |
Obtém um valor que indica se o controle tem atributos definidos. (Herdado de WebControl) |
HasChildViewState |
Obtém um valor que indica se os controles filho do controle de servidor atual têm alguma configuração de estado de exibição salva. (Herdado de Control) |
HasFile |
Obtém um valor que indica se o controle FileUpload contém um arquivo. |
HasFiles |
Obtém um valor que indica se todos os arquivos foram carregados. |
Height |
Obtém ou define a altura do controle do servidor Web. (Herdado de WebControl) |
ID |
Obtém ou define o identificador programático atribuído ao controle de servidor. (Herdado de Control) |
IdSeparator |
Obtém o caractere usado para separar identificadores de controle. (Herdado de Control) |
IsChildControlStateCleared |
Obtém um valor que indica se os controles contidos dentro deste controle têm estado de controle. (Herdado de Control) |
IsEnabled |
Obtém um valor que indica se o controle está habilitado. (Herdado de WebControl) |
IsTrackingViewState |
Obtém um valor que indica se o controle de servidor está salvando alterações no estado de exibição. (Herdado de Control) |
IsViewStateEnabled |
Obtém um valor que indica se o estado de exibição está habilitado para esse controle. (Herdado de Control) |
LoadViewStateByID |
Obtém um valor que indica se o controle participa do carregamento do estado de exibição por ID em vez do índice. (Herdado de Control) |
NamingContainer |
Obtém uma referência ao contêiner de nomenclatura do controle do servidor, que cria um namespace exclusivo para diferenciar entre os controles de servidor com o mesmo valor da propriedade ID. (Herdado de Control) |
Page |
Obtém uma referência para a instância Page que contém o controle de servidor. (Herdado de Control) |
Parent |
Obtém uma referência ao controle pai do controle de servidor na hierarquia de controle da página. (Herdado de Control) |
PostedFile |
Obtém o objeto HttpPostedFile subjacente de um arquivo carregado com o uso do controle FileUpload. |
PostedFiles |
Obtém a coleção de arquivos carregados. |
RenderingCompatibility |
Obtém um valor que especifica a versão do ASP.NET com a qual o HTML renderizado será compatível. (Herdado de Control) |
Site |
Obtém informações sobre o contêiner que hospeda o controle atual quando renderizados em uma superfície de design. (Herdado de Control) |
SkinID |
Obtém ou define a capa a ser aplicada ao controle. (Herdado de WebControl) |
Style |
Obtém uma coleção de atributos de texto que serão renderizados como um atributo de estilo na marca externa do controle de servidor Web. (Herdado de WebControl) |
SupportsDisabledAttribute |
Obtém um valor que indica se o controle deve definir o atributo |
TabIndex |
Obtém ou define o índice de tabulação do controle do servidor Web. (Herdado de WebControl) |
TagKey |
Obtém o valor HtmlTextWriterTag que corresponde ao controle do servidor Web. Essa propriedade é usada principalmente por desenvolvedores de controle. (Herdado de WebControl) |
TagName |
Obtém o nome da marca de controle. Essa propriedade é usada principalmente por desenvolvedores de controle. (Herdado de WebControl) |
TemplateControl |
Obtém ou define uma referência ao modelo que contém este controle. (Herdado de Control) |
TemplateSourceDirectory |
Obtém o diretório virtual do Page ou UserControl que contém o controle do servidor atual. (Herdado de Control) |
ToolTip |
Obtém ou define o texto exibido quando o ponteiro do mouse passa sobre o controle de servidor Web. (Herdado de WebControl) |
UniqueID |
Obtém o identificador exclusivo, qualificado segundo a hierarquia, para o controle de servidor. (Herdado de Control) |
ValidateRequestMode |
Obtém ou define um valor que indica se o controle verifica a entrada do cliente do navegador para valores potencialmente perigosos. (Herdado de Control) |
ViewState |
Obtém um dicionário de informações de estado que permite salvar e restaurar o estado de exibição de um controle de servidor em várias solicitações para a mesma página. (Herdado de Control) |
ViewStateIgnoresCase |
Obtém um valor que indica se o objeto StateBag não diferencia maiúsculas de minúsculas. (Herdado de Control) |
ViewStateMode |
Obtém ou define o modo de estado de exibição deste controle. (Herdado de Control) |
Visible |
Obtém ou define um valor que indica se um controle de servidor é renderizado como uma interface do usuário na página. (Herdado de Control) |
Width |
Obtém ou define a largura do controle de servidor Web. (Herdado de WebControl) |
Métodos
AddAttributesToRender(HtmlTextWriter) |
Adiciona os estilos e atributos HTML de um controle FileUpload para a ser renderizado ao objeto HtmlTextWriter especificado. |
AddedControl(Control, Int32) |
Chamado após um controle filho ser adicionado à coleção Controls do objeto Control. (Herdado de Control) |
AddParsedSubObject(Object) |
Notifica o controle de servidor de que um elemento, XML ou HTML, foi analisado e adiciona o elemento ao objeto ControlCollection do controle de servidor. (Herdado de Control) |
ApplyStyle(Style) |
Copia os elementos não vazios do estilo especificado para o controle da Web, substituindo os elementos de estilo existentes no controle. Esse método é usado principalmente por desenvolvedores de controles. (Herdado de WebControl) |
ApplyStyleSheetSkin(Page) |
Aplica as propriedades de estilo definidas na folha de estilos da página ao controle. (Herdado de Control) |
BeginRenderTracing(TextWriter, Object) |
Inicia o rastreamento de tempo de design de dados de renderização. (Herdado de Control) |
BuildProfileTree(String, Boolean) |
Reúne informações sobre o controle de servidor e as envia para a propriedade Trace para serem exibidas quando o rastreamento está habilitado para a página. (Herdado de Control) |
ClearCachedClientID() |
Define o valor ClientID armazenado em cache como |
ClearChildControlState() |
Exclui as informações de estado de controle para os controles filho do controle de servidor. (Herdado de Control) |
ClearChildState() |
Exclui as informações de estado de exibição e de estado de controle para todos os controles filho do controle de servidor. (Herdado de Control) |
ClearChildViewState() |
Exclui as informações de estado de exibição para todos os controles filho do controle de servidor. (Herdado de Control) |
ClearEffectiveClientIDMode() |
Define a propriedade ClientIDMode da instância de controle atual e de quaisquer controles filho para Inherit. (Herdado de Control) |
CopyBaseAttributes(WebControl) |
Copia as propriedades que não são encapsuladas pelo objeto Style de controle do servidor Web especificado ao controle de servidor Web do qual este método é chamado. Esse método é usado principalmente por desenvolvedores de controle. (Herdado de WebControl) |
CreateChildControls() |
Chamado pela estrutura de página do ASP.NET para notificar os controles do servidor que usam a implementação baseada em composição para criar os controles filho para preparar-se para um postback ou renderização. (Herdado de Control) |
CreateControlCollection() |
Cria um novo objeto ControlCollection para manter os controles filho (literal e servidor) do controle do servidor. (Herdado de Control) |
CreateControlStyle() |
Cria o objeto de estilo que é usado internamente pela classe WebControl para implementar todas as propriedades relacionadas a estilo. Esse método é usado principalmente por desenvolvedores de controle. (Herdado de WebControl) |
DataBind() |
Associa uma fonte de dados ao controle de servidor chamado e a todos os seus controles filho. (Herdado de Control) |
DataBind(Boolean) |
Associa uma fonte de dados ao controle de servidor invocado e todos os seus controles filho com uma opção para gerar o evento DataBinding. (Herdado de Control) |
DataBindChildren() |
Associa uma fonte de dados aos controles filho do controle do servidor. (Herdado de Control) |
Dispose() |
Permite que um controle de servidor execute a limpeza final antes do lançamento da memória. (Herdado de Control) |
EndRenderTracing(TextWriter, Object) |
Encerra o rastreamento de tempo de design de dados de renderização. (Herdado de Control) |
EnsureChildControls() |
Determinará se o controle de servidor contiver controles filho. Se ele não contiver, ele criará controles filho. (Herdado de Control) |
EnsureID() |
Cria um identificador para controles que não têm um identificador atribuído. (Herdado de Control) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
FindControl(String) |
Procura o atual contêiner de nomenclatura de um controle de servidor com o parâmetro |
FindControl(String, Int32) |
Procura o contêiner de nomenclatura atual para um controle de servidor com o |
Focus() |
Define o foco de entrada para um controle. (Herdado de Control) |
GetDesignModeState() |
Obtém os dados de tempo de design para um controle. (Herdado de Control) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetRouteUrl(Object) |
Obtém a URL que corresponde a um conjunto de parâmetros de rota. (Herdado de Control) |
GetRouteUrl(RouteValueDictionary) |
Obtém a URL que corresponde a um conjunto de parâmetros de rota. (Herdado de Control) |
GetRouteUrl(String, Object) |
Obtém a URL que corresponde a um conjunto de parâmetros de rota e um nome de rota. (Herdado de Control) |
GetRouteUrl(String, RouteValueDictionary) |
Obtém a URL que corresponde a um conjunto de parâmetros de rota e um nome de rota. (Herdado de Control) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
GetUniqueIDRelativeTo(Control) |
Retorna a parte prefixada da propriedade UniqueID do controle especificado. (Herdado de Control) |
HasControls() |
Determina se o controle de servidor contém algum controle filho. (Herdado de Control) |
HasEvents() |
Retorna um valor que indica se os eventos são registrados para o controle ou qualquer controle filho. (Herdado de Control) |
IsLiteralContent() |
Determina se o controle de servidor contém apenas o conteúdo literal. (Herdado de Control) |
LoadControlState(Object) |
Restaura informações de estado de controle de uma solicitação de página anterior que foi salva pelo método SaveControlState(). (Herdado de Control) |
LoadViewState(Object) |
Restaura informações de estado de exibição de uma solicitação anterior que foi salva com o método SaveViewState(). (Herdado de WebControl) |
MapPathSecure(String) |
Recupera o caminho físico para o qual um caminho virtual é mapeado, relativo ou virtual. (Herdado de Control) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MergeStyle(Style) |
Copia os elementos não vazios do estilo especificado para o controle da Web, mas não substituirá os elementos de estilo existentes do controle. Esse método é usado principalmente por desenvolvedores de controle. (Herdado de WebControl) |
OnBubbleEvent(Object, EventArgs) |
Determina se o evento do controle de servidor é passado um nível acima da hierarquia de controle de servidor da interface do usuário da página. (Herdado de Control) |
OnDataBinding(EventArgs) |
Aciona o evento DataBinding. (Herdado de Control) |
OnInit(EventArgs) |
Aciona o evento Init. (Herdado de Control) |
OnLoad(EventArgs) |
Aciona o evento Load. (Herdado de Control) |
OnPreRender(EventArgs) |
Aciona o evento PreRender do controle FileUpload. |
OnUnload(EventArgs) |
Aciona o evento Unload. (Herdado de Control) |
OpenFile(String) |
Obtém um Stream usado para ler um arquivo. (Herdado de Control) |
RaiseBubbleEvent(Object, EventArgs) |
Atribui quaisquer fontes de evento e suas informações para o pai do controle. (Herdado de Control) |
RemovedControl(Control) |
Chamado após um controle filho ser removido da coleção Controls do objeto Control. (Herdado de Control) |
Render(HtmlTextWriter) |
Envia o conteúdo do controle FileUpload para o objeto HtmlTextWriter especificado, que grava o conteúdo a ser renderizado no cliente. |
RenderBeginTag(HtmlTextWriter) |
Renderiza a marca de abertura HTML do controle para o gravador especificado. Esse método é usado principalmente por desenvolvedores de controle. (Herdado de WebControl) |
RenderChildren(HtmlTextWriter) |
Gera o conteúdo dos filhos de um controle de servidor para um objeto HtmlTextWriter fornecido, que grava o conteúdo a ser renderizado no cliente. (Herdado de Control) |
RenderContents(HtmlTextWriter) |
Renderiza o conteúdo do controle no gravador especificado. Esse método é usado principalmente por desenvolvedores de controle. (Herdado de WebControl) |
RenderControl(HtmlTextWriter) |
Gera o conteúdo do controle de servidor para um objeto HtmlTextWriter fornecido e armazena informações de rastreamento sobre o controle caso o rastreamento esteja habilitado. (Herdado de Control) |
RenderControl(HtmlTextWriter, ControlAdapter) |
Gera o conteúdo do controle de servidor a um objeto HtmlTextWriter fornecido usando um objeto ControlAdapter fornecido. (Herdado de Control) |
RenderEndTag(HtmlTextWriter) |
Renderiza a marca de fechamento HTML do controle para o gravador especificado. Esse método é usado principalmente por desenvolvedores de controle. (Herdado de WebControl) |
ResolveAdapter() |
Obtém o adaptador de controle responsável por renderizar o controle especificado. (Herdado de Control) |
ResolveClientUrl(String) |
Obtém uma URL que pode ser usada pelo navegador. (Herdado de Control) |
ResolveUrl(String) |
Converte uma URL em uma que possa ser usada no cliente solicitante. (Herdado de Control) |
SaveAs(String) |
Salva o conteúdo de um arquivo carregado em um caminho especificado no servidor Web. |
SaveControlState() |
Salva as alterações de estado do controle de servidor que ocorreram desde a hora em que ocorreu o postback da página no servidor. (Herdado de Control) |
SaveViewState() |
Salva qualquer estado que foi modificado depois que o método TrackViewState() foi invocado. (Herdado de WebControl) |
SetDesignModeState(IDictionary) |
Define os dados de tempo de design para um controle. (Herdado de Control) |
SetRenderMethodDelegate(RenderMethod) |
Atribui um delegado do manipulador de eventos para renderizar o controle de servidor e seu conteúdo em seu controle pai. (Herdado de Control) |
SetTraceData(Object, Object) |
Define os dados de rastreamento para o rastreamento de tempo de design dos dados de renderização, usando a chave e o valor de dados de rastreamento. (Herdado de Control) |
SetTraceData(Object, Object, Object) |
Define os dados de rastreamento para o rastreamento de tempo de design dos dados de renderização, usando o objeto rastreado, a chave e o valor de dados de rastreamento. (Herdado de Control) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
TrackViewState() |
Faz com que o controle acompanhe as alterações a seu estado de exibição para que eles possam ser armazenados na propriedade ViewState do objeto. (Herdado de WebControl) |
Eventos
DataBinding |
Ocorre quando o controle de servidor é associado a uma fonte de dados. (Herdado de Control) |
Disposed |
Ocorre quando um controle de servidor é liberado da memória, que é o último estágio do ciclo de vida de controle de servidor quando uma página ASP.NET é solicitada. (Herdado de Control) |
Init |
Ocorre quando o controle de servidor é inicializado, que é a primeira etapa do ciclo de vida. (Herdado de Control) |
Load |
Ocorre quando o controle de servidor é carregado no objeto Page. (Herdado de Control) |
PreRender |
Ocorre depois que o objeto Control é carregado, mas antes da renderização. (Herdado de Control) |
Unload |
Ocorre quando o controle de servidor é descarregado da memória. (Herdado de Control) |
Implantações explícitas de interface
IAttributeAccessor.GetAttribute(String) |
Obtém um atributo do controle da Web com o nome especificado. (Herdado de WebControl) |
IAttributeAccessor.SetAttribute(String, String) |
Define um atributo do controle da Web para o nome e o valor especificados. (Herdado de WebControl) |
IControlBuilderAccessor.ControlBuilder |
Para obter uma descrição desse membro, confira ControlBuilder. (Herdado de Control) |
IControlDesignerAccessor.GetDesignModeState() |
Para obter uma descrição desse membro, confira GetDesignModeState(). (Herdado de Control) |
IControlDesignerAccessor.SetDesignModeState(IDictionary) |
Para obter uma descrição desse membro, confira SetDesignModeState(IDictionary). (Herdado de Control) |
IControlDesignerAccessor.SetOwnerControl(Control) |
Para obter uma descrição desse membro, confira SetOwnerControl(Control). (Herdado de Control) |
IControlDesignerAccessor.UserData |
Para obter uma descrição desse membro, confira UserData. (Herdado de Control) |
IDataBindingsAccessor.DataBindings |
Para obter uma descrição desse membro, confira DataBindings. (Herdado de Control) |
IDataBindingsAccessor.HasDataBindings |
Para obter uma descrição desse membro, confira HasDataBindings. (Herdado de Control) |
IExpressionsAccessor.Expressions |
Para obter uma descrição desse membro, confira Expressions. (Herdado de Control) |
IExpressionsAccessor.HasExpressions |
Para obter uma descrição desse membro, confira HasExpressions. (Herdado de Control) |
IParserAccessor.AddParsedSubObject(Object) |
Para obter uma descrição desse membro, confira AddParsedSubObject(Object). (Herdado de Control) |
Métodos de Extensão
FindDataSourceControl(Control) |
Retorna a fonte de dados associada ao controle de dados do controle especificado. |
FindFieldTemplate(Control, String) |
Retorna o modelo do campo para a coluna especificada no contêiner de nomenclatura do controle especificado. |
FindMetaTable(Control) |
Retorna o objeto metatable para o controle que contém dados. |