FileUpload Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Exibe um controlo de caixa de texto e um botão de navegação que permitem aos utilizadores selecionar um ficheiro para carregar 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
Esta secção contém os seguintes quatro exemplos:
- O primeiro exemplo demonstra como criar um FileUpload controlo que guarda ficheiros num caminho especificado em código.
- O segundo exemplo demonstra como criar um FileUpload controlo que guarda ficheiros numa diretoria específica no sistema de ficheiros da aplicação.
- O terceiro exemplo demonstra como criar um FileUpload controlo que guarda ficheiros num caminho especificado e limita o tamanho do ficheiro que pode ser carregado.
- O quarto exemplo demonstra como criar um FileUpload controlo que guarda ficheiros num caminho especificado e permite apenas carregar ficheiros que tenham as extensões de nome de ficheiro .doc ou .xls.
Caution
Estes exemplos demonstram a sintaxe básica do FileUpload controlo, mas não demonstram toda a verificação de erros necessária que deve ser feita antes de gravar o ficheiro. Para um exemplo mais completo, veja SaveAs.
O exemplo seguinte demonstra como criar um FileUpload controlo que guarda ficheiros num caminho especificado no código. O SaveAs método é chamado para guardar o ficheiro 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 seguinte demonstra como criar um FileUpload controlo que guarda ficheiros para um diretório especificado no sistema de ficheiros da aplicação. A HttpRequest.PhysicalApplicationPath propriedade é usada para obter o caminho físico do sistema de ficheiros do diretório raiz da aplicação servidor em execução. O SaveAs método é chamado para guardar o ficheiro 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 seguinte demonstra como criar um FileUpload controlo que guarda ficheiros num caminho especificado no código. O controlo limita o tamanho do ficheiro que pode ser carregado para 2 MB. A PostedFile propriedade é usada para aceder à propriedade subjacente ContentLength e devolver o tamanho do ficheiro. Se o tamanho do ficheiro a carregar for inferior a 2 MB, o SaveAs método é chamado para guardar o ficheiro no caminho especificado no servidor. Além de verificar a definição de tamanho máximo do ficheiro no código da sua aplicação, pode definir o maxRequestLength atributo do elemento httpRuntime para um tamanho máximo permitido no ficheiro de configuração da sua aplicação.
<%@ 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 seguinte demonstra como criar um FileUpload controlo que guarda ficheiros num caminho especificado no código. Este exemplo permite que apenas ficheiros que tenham as extensões de nome de ficheiro .doc ou .xls sejam carregados. O Path.GetExtension método é chamado para devolver a extensão do ficheiro para carregar. Se o ficheiro tiver uma extensão de nome de ficheiro .doc ou .xls, o SaveAs método é chamado para guardar o ficheiro 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>
Observações
Neste artigo:
- Introdução
- Guardar Ficheiros Carregados
- Considerações de Segurança
- Limitações de memória
- Usar o Controlo FileUpload com o Controlo do Painel de Atualizações
- Sintaxe declarativa
Introduction
A FileUpload classe apresenta um controlo por caixa de texto e um botão de navegação que permitem aos utilizadores selecionar um ficheiro no cliente e carregá-lo para o servidor Web. O utilizador especifica o ficheiro a carregar introduzindo o caminho completo do ficheiro no computador local (por exemplo, C:\MyFiles\TestFile.txt) na caixa de texto do controlo. Alternativamente, o utilizador pode selecionar o ficheiro clicando no botão Explorar e depois localizá-lo na caixa de diálogo Escolher Ficheiro .
Use a FileName propriedade para obter o nome de um ficheiro num cliente para carregar usando o FileUpload controlo. O nome do ficheiro que esta propriedade devolve não inclui o caminho do ficheiro no cliente.
A FileContent propriedade recebe um Stream objeto que aponta para um ficheiro para carregar. Use esta propriedade para aceder ao conteúdo do ficheiro como bytes. Por exemplo, pode usar o Stream objeto devolvido pela FileContent propriedade para ler o conteúdo do ficheiro como bytes e armazená-los num array de bytes. Alternativamente, podes usar a FileBytes propriedade para recuperar todos os bytes do ficheiro.
A PostedFile propriedade obtém o objeto subjacente HttpPostedFile para o ficheiro carregar. Pode usar esta propriedade para aceder a propriedades adicionais no ficheiro. A ContentLength propriedade recebe o comprimento do ficheiro. A ContentType propriedade recebe o tipo de conteúdo MIME do ficheiro. Além disso, pode usar a PostedFile propriedade para aceder à FileName propriedade, à InputStream propriedade e ao SaveAs método. No entanto, a mesma funcionalidade é fornecida pela FileName propriedade, pela FileContent propriedade e pelo SaveAs método.
Guardar Ficheiros Carregados
O FileUpload controlo não guarda automaticamente um ficheiro no servidor depois de o utilizador selecionar o ficheiro a carregar. Deve fornecer explicitamente um controlo ou mecanismo que permita ao utilizador submeter o ficheiro especificado. Por exemplo, pode fornecer um botão que o utilizador clica para carregar o ficheiro. O código que escreves para guardar o ficheiro especificado deve chamar o SaveAs método, que guarda o conteúdo de um ficheiro num caminho especificado no servidor. Normalmente, o SaveAs método é chamado num método de gestão de eventos para um evento que eleva uma publicação de volta ao servidor. Por exemplo, se fornecer um botão para submeter um ficheiro, pode incluir o código para guardar o ficheiro dentro do método de gestão de eventos para o evento de clique.
Antes de chamar o SaveAs método para guardar o ficheiro no servidor, use a HasFile propriedade para verificar se o controlo FileUpload contém um ficheiro. Se o HasFile retorno true, chama o SaveAs método. Se devolver false, exibe uma mensagem ao utilizador indicando que o controlo não contém um ficheiro. Não verifique a PostedFile propriedade para determinar se existe um ficheiro a carregar porque, por defeito, essa propriedade contém 0 bytes. Como resultado, mesmo quando o controlo FileUpload está em branco, a PostedFile propriedade devolve um valor não nulo.
Considerações de segurança
Ao chamar o SaveAs método, deve especificar o caminho completo do diretório onde deve guardar o ficheiro carregado. Se não especificar explicitamente um caminho no código da sua aplicação, é lançada uma exceção quando um utilizador tenta carregar um ficheiro. Este comportamento ajuda a manter os ficheiros no servidor seguros, impedindo que os utilizadores escrevam em locais arbitrários na estrutura de diretórios da sua aplicação, bem como ao acesso a diretórios raiz sensíveis.
O SaveAs método escreve o ficheiro carregado no diretório especificado. Portanto, a aplicação ASP.NET deve ter acesso de escrita ao diretório no servidor. Existem duas formas de a aplicação obter acesso por escrita. Pode conceder explicitamente acesso por escrita à conta sob a qual a aplicação está a correr, no diretório onde os ficheiros carregados serão guardados. Em alternativa, pode aumentar o nível de confiança concedido à aplicação ASP.NET. Para obter acesso de escrita ao diretório em execução da aplicação, a aplicação deve receber o AspNetHostingPermission objeto com o nível de confiança definido para o AspNetHostingPermissionLevel.Medium valor. Aumentar o nível de confiança aumenta o acesso da aplicação aos recursos do servidor. Note que esta não é uma abordagem segura, porque um utilizador malicioso que tome controlo da sua aplicação também poderá correr sob este nível superior de confiança. É uma boa prática executar uma aplicação ASP.NET no contexto de um utilizador com os privilégios mínimos exigidos para a aplicação funcionar. Para mais informações sobre segurança em aplicações ASP.NET, consulte Práticas Básicas de Segurança para Aplicações Web e ASP.NET Níveis de Confiança e Ficheiros de Políticas.
Limitações de memória
Uma forma de evitar ataques de negação de serviço é limitar o tamanho dos ficheiros que podem ser carregados usando o FileUpload controlo. Deve definir um limite de tamanho adequado para os tipos de ficheiros que espera que sejam carregados. O limite de tamanho padrão é de 4096 kilobytes (KB), ou 4 megabytes (MB). Pode permitir o upload de ficheiros maiores definindo o maxRequestLength atributo do elemento httpRuntime . Para aumentar o tamanho máximo permitido do ficheiro para toda a aplicação, defina o maxRequestLength atributo no ficheiro Web.config. Para aumentar o tamanho máximo permitido de ficheiro para uma página especificada, defina o atributo maxRequestLength dentro do elemento location em Web.config. Para um exemplo, veja location Element (ASP.NET Settings Schema).
Ao carregar ficheiros grandes, um utilizador pode também 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 seus utilizadores encontrarem esta mensagem de erro, aumente o valor do memoryLimit atributo no processModel of elemento o ficheiro Web.config para a aplicação. O memoryLimit atributo especifica a quantidade máxima de memória que um processo worker pode utilizar. Se o processo do trabalhador exceder o memoryLimit montante, é criado um novo processo para o substituir, e todos os pedidos atuais são reatribuídos ao novo processo.
Para controlar se o ficheiro a carregar está temporariamente armazenado na memória ou no servidor enquanto o pedido está a ser processado, defina o requestLengthDiskThreshold atributo do elemento httpRuntime . Este atributo permite-lhe gerir o tamanho do buffer do fluxo de entrada. O padrão é 256 bytes. O valor que especifica não deve exceder o valor que especifica para o maxRequestLength atributo.
Usar o Controlo FileUpload com o Controlo do Painel de Atualizações
O FileUpload controlo foi concebido para ser usado apenas em cenários de postback e não em cenários assíncronos durante a renderização de páginas parciais. Quando usas um FileUpload controlo dentro de um UpdatePanel controlo, o ficheiro tem de ser carregado usando um controlo que seja um PostBackTrigger objeto do painel. UpdatePanel Os controlos são usados para atualizar regiões selecionadas de uma página em vez de atualizar toda a página com um postback. Para mais informações, consulte Visão Geral de Controlo do Painel de Atualização e Partial-Page Visão Geral de Renderização.
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
| Name | Description |
|---|---|
| FileUpload() |
Inicializa uma nova instância da FileUpload classe. |
Propriedades
| Name | Description |
|---|---|
| AccessKey |
Obtém ou define a chave de acesso que permite navegar rapidamente até ao controlo do servidor Web. (Herdado de WebControl) |
| Adapter |
Recebe o adaptador específico do navegador para o controlo. (Herdado de Control) |
| AllowMultiple |
Recebe ou define um valor que especifica se múltiplos ficheiros podem ser selecionados para upload. |
| AppRelativeTemplateSourceDirectory |
Obtém ou define o diretório virtual relativo à aplicação do Page objeto ou UserControl que contém este controlo. (Herdado de Control) |
| Attributes |
Obtém a coleção de atributos arbitrários (apenas para renderização) que não correspondem a propriedades no controlo. (Herdado de WebControl) |
| BackColor |
Obtém ou define a cor de fundo do controlo do servidor Web. (Herdado de WebControl) |
| BindingContainer |
Obtém o controlo que contém a ligação de dados desse controlo. (Herdado de Control) |
| BorderColor |
Obtém ou define a cor da borda do controlo Web. (Herdado de WebControl) |
| BorderStyle |
Obtém ou define o estilo de borda do controlo do servidor Web. (Herdado de WebControl) |
| BorderWidth |
Obtém ou define a largura da fronteira do controlo do servidor Web. (Herdado de WebControl) |
| ChildControlsCreated |
Recebe um valor que indica se os controlos filhos do controlo do servidor foram criados. (Herdado de Control) |
| ClientID |
Obtém o ID de controlo para a marcação HTML gerada pelo ASP.NET. (Herdado de Control) |
| ClientIDMode |
Obtém ou define o algoritmo que é usado para gerar o valor da ClientID propriedade. (Herdado de Control) |
| ClientIDSeparator |
Obtém um valor de carácter que representa o carácter separador usado na ClientID propriedade. (Herdado de Control) |
| Context |
Obtém o controlo do HttpContext objeto associado ao servidor para o pedido Web atual. (Herdado de Control) |
| Controls |
Obtém um ControlCollection objeto que representa os controlos filhos de um servidor especificado na hierarquia da interface. (Herdado de Control) |
| ControlStyle |
Recebe o estilo do controlo do servidor Web. Esta propriedade é utilizada principalmente por promotores de controlo. (Herdado de WebControl) |
| ControlStyleCreated |
Recebe um valor que indica se um Style objeto foi criado para a ControlStyle propriedade. Esta propriedade é utilizada principalmente por promotores de controlo. (Herdado de WebControl) |
| CssClass |
Obtém ou define a classe Cascading Style Sheet (CSS) renderizada pelo controlo do servidor Web no cliente. (Herdado de WebControl) |
| DataItemContainer |
Obtém uma referência ao contentor de nomes se o contentor implementar IDataItemContainer. (Herdado de Control) |
| DataKeysContainer |
Obtém uma referência ao contentor de nomes se o contentor implementar IDataKeysControl. (Herdado de Control) |
| DesignMode |
Obtém um valor que indica se um controlo está a ser usado numa superfície de projeto. (Herdado de Control) |
| Enabled |
Recebe ou define um valor que indica se o controlo do servidor Web está ativado. (Herdado de WebControl) |
| EnableTheming |
Recebe ou define um valor que indica se os temas se aplicam a este controlo. (Herdado de WebControl) |
| EnableViewState |
Recebe ou define um valor que indica se o controlo do servidor mantém o seu estado de visualização, e o estado de vista de quaisquer controlos filhos que contém, para o cliente solicitante. (Herdado de Control) |
| Events |
Obtém uma lista de delegados handler de eventos para o controlo. Esta propriedade é somente leitura. (Herdado de Control) |
| FileBytes |
Obtém um array dos bytes num ficheiro especificado usando um FileUpload controlo. |
| FileContent |
Recebe um Stream objeto que aponta para um ficheiro para carregar usando o FileUpload controlo. |
| FileName |
Obtém o nome de um ficheiro num cliente para carregar usando o FileUpload controlo. |
| Font |
Obtém as propriedades da fonte associadas ao controlo do servidor Web. (Herdado de WebControl) |
| ForeColor |
Obtém ou define a cor do primeiro plano (tipicamente a cor do texto) do controlo do servidor Web. (Herdado de WebControl) |
| HasAttributes |
Recebe um valor que indica se o controlo tem atributos definidos. (Herdado de WebControl) |
| HasChildViewState |
Recebe um valor que indica se os controlos filhos do controlo atual do servidor têm alguma configuração de estado de visualização guardada. (Herdado de Control) |
| HasFile |
Recebe um valor que indica se o controlo FileUpload contém um ficheiro. |
| HasFiles |
Recebe um valor que indica se algum ficheiro foi carregado. |
| Height |
Obtém ou define a altura do controlo do servidor Web. (Herdado de WebControl) |
| ID |
Obtém ou define o identificador programático atribuído ao controlo do servidor. (Herdado de Control) |
| IdSeparator |
Faz com que o carácter seja usado para separar identificadores de controlo. (Herdado de Control) |
| IsChildControlStateCleared |
Obtém um valor que indica se os controlos contidos neste controlo têm estado de controlo. (Herdado de Control) |
| IsEnabled |
Recebe um valor que indica se o controlo está ativado. (Herdado de WebControl) |
| IsTrackingViewState |
Recebe um valor que indica se o controlo do servidor está a guardar alterações ao estado de visualização. (Herdado de Control) |
| IsViewStateEnabled |
Recebe um valor que indica se o estado de visualização está ativado para este controlo. (Herdado de Control) |
| LoadViewStateByID |
Recebe um valor que indica se o controlo participa no carregamento do seu estado de visualização em ID vez de index. (Herdado de Control) |
| NamingContainer |
Obtém uma referência ao contentor de nomes do controlo do servidor, que cria um namespace único para diferenciar controlos de servidor com o mesmo ID valor de propriedade. (Herdado de Control) |
| Page |
Obtém uma referência à Page instância que contém o controlo do servidor. (Herdado de Control) |
| Parent |
Obtém uma referência ao controlo pai do controlo do servidor na hierarquia de controlo de página. (Herdado de Control) |
| PostedFile |
Obtém o objeto subjacente HttpPostedFile para um ficheiro que é carregado usando o FileUpload controlo. |
| PostedFiles |
Recebe a coleção dos ficheiros carregados. |
| RenderingCompatibility |
Recebe um valor que especifica a versão ASP.NET com a qual o HTML renderizado será compatível. (Herdado de Control) |
| Site |
Obtém informação sobre o contentor que aloja o controlo atual quando renderizado numa superfície de design. (Herdado de Control) |
| SkinID |
Obtém ou fixa a pele para aplicar no controlo. (Herdado de WebControl) |
| Style |
Recebe uma coleção de atributos de texto que serão renderizados como um atributo de estilo na etiqueta externa do controlo do servidor Web. (Herdado de WebControl) |
| SupportsDisabledAttribute |
Obtém um valor que indica se o controlo deve definir o |
| TabIndex |
Obtém ou define o índice de tabulação do controlo do servidor Web. (Herdado de WebControl) |
| TagKey |
Obtém o HtmlTextWriterTag valor correspondente a este controlo do servidor Web. Esta propriedade é utilizada principalmente por promotores de controlo. (Herdado de WebControl) |
| TagName |
Recebe o nome da etiqueta de controlo. Esta propriedade é utilizada principalmente por promotores de controlo. (Herdado de WebControl) |
| TemplateControl |
Recebe ou define uma referência ao template que contém esse controlo. (Herdado de Control) |
| TemplateSourceDirectory |
Obtém o diretório virtual do Page ou UserControl que contém o controlo atual do servidor. (Herdado de Control) |
| ToolTip |
Obtém ou define o texto exibido quando o ponteiro do rato paira sobre o controlo do servidor Web. (Herdado de WebControl) |
| UniqueID |
Obtém o identificador único e hierarquicamente qualificado para o controlo do servidor. (Herdado de Control) |
| ValidateRequestMode |
Recebe ou define um valor que indica se o controlo verifica a entrada do cliente do navegador para valores potencialmente perigosos. (Herdado de Control) |
| ViewState |
Obtém um dicionário de informação de estado que permite guardar e restaurar o estado de visualização de um controlo de servidor através de múltiplos pedidos para a mesma página. (Herdado de Control) |
| ViewStateIgnoresCase |
Obtém um valor que indica se o StateBag objeto é indistinto a maiúsculas e maiúsculas. (Herdado de Control) |
| ViewStateMode |
Obtém ou define o modo view-state deste controlo. (Herdado de Control) |
| Visible |
Recebe ou define um valor que indica se um controlo de servidor é renderizado como UI na página. (Herdado de Control) |
| Width |
Obtém ou define a largura do controlo do servidor Web. (Herdado de WebControl) |
Métodos
| Name | Description |
|---|---|
| AddAttributesToRender(HtmlTextWriter) |
Adiciona os atributos HTML e estilos de um FileUpload controlo para renderizar no objeto especificado HtmlTextWriter . |
| AddedControl(Control, Int32) |
Chamado após um controlo filho ser adicionado à Controls coleção do Control objeto. (Herdado de Control) |
| AddParsedSubObject(Object) |
Notifica o controlo do servidor que um elemento, seja XML ou HTML, foi analisado, e adiciona o elemento ao objeto do ControlCollection controlo do servidor. (Herdado de Control) |
| ApplyStyle(Style) |
Copia quaisquer elementos não em branco do estilo especificado para o controlo Web, sobrescrevendo quaisquer elementos de estilo existentes do controlo. Este método é usado principalmente por desenvolvedores de controlo. (Herdado de WebControl) |
| ApplyStyleSheetSkin(Page) |
Aplica as propriedades de estilo definidas na folha de estilo da página ao controlo. (Herdado de Control) |
| BeginRenderTracing(TextWriter, Object) |
Inicia o rastreio em tempo de design dos dados de renderização. (Herdado de Control) |
| BuildProfileTree(String, Boolean) |
Recolhe informações sobre o controlo do servidor e entrega-as à Trace propriedade para serem exibidas quando o rastreamento for ativado para a página. (Herdado de Control) |
| ClearCachedClientID() |
Define o valor em ClientID cache para |
| ClearChildControlState() |
Apaga a informação de estado de controlo dos controlos filhos do controlo do servidor. (Herdado de Control) |
| ClearChildState() |
Apaga a informação de view-state e control-state de todos os controlos filhos do servidor. (Herdado de Control) |
| ClearChildViewState() |
Elimina a informação de estado de visualização de todos os controlos filhos do controlo do servidor. (Herdado de Control) |
| ClearEffectiveClientIDMode() |
Define a ClientIDMode propriedade da instância de controlo atual e de qualquer controlo filho para Inherit. (Herdado de Control) |
| CopyBaseAttributes(WebControl) |
Copia as propriedades não encapsuladas pelo Style objeto do controlo do servidor Web especificado para o controlo do servidor Web de onde este método é chamado. Este método é utilizado principalmente por reveladores de controlo. (Herdado de WebControl) |
| CreateChildControls() |
Chamada pelo framework de páginas ASP.NET para notificar os controlos de servidor que utilizam implementação baseada em composição para criar quaisquer controlos filhos que contenham em preparação para publicação ou renderização. (Herdado de Control) |
| CreateControlCollection() |
Cria um novo ControlCollection objeto para armazenar os controlos filhos (tanto literais como de servidor) do controlo do servidor. (Herdado de Control) |
| CreateControlStyle() |
Cria o objeto de estilo que é usado internamente pela WebControl classe para implementar todas as propriedades relacionadas com o estilo. Este método é utilizado principalmente por reveladores de controlo. (Herdado de WebControl) |
| DataBind() |
Vincula uma fonte de dados ao controlo do servidor invocado e a todos os seus controlos filhos. (Herdado de Control) |
| DataBind(Boolean) |
Vincula uma fonte de dados ao controlo do servidor invocado e a todos os seus controlos filhos com uma opção para elevar o DataBinding evento. (Herdado de Control) |
| DataBindChildren() |
Vincula uma fonte de dados aos controlos filhos do controlo do servidor. (Herdado de Control) |
| Dispose() |
Permite que o controlo do servidor realize a limpeza final antes de ser libertado da memória. (Herdado de Control) |
| EndRenderTracing(TextWriter, Object) |
Termina o rastreio de tempo de design dos dados de renderização. (Herdado de Control) |
| EnsureChildControls() |
Determina se o controlo do servidor contém controlos filhos. Se não o fizer, cria controlos filhos. (Herdado de Control) |
| EnsureID() |
Cria um identificador para controlos 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, Int32) |
Pesquisa no contentor de nomenclatura atual um controlo de servidor com o especificado |
| FindControl(String) |
Procura no contentor de nomenclatura atual um controlo de servidor com o parâmetro especificado |
| Focus() |
Define o foco de entrada num controlo. (Herdado de Control) |
| GetDesignModeState() |
Obtém dados de tempo de projeto para um controlo. (Herdado de Control) |
| GetHashCode() |
Serve como função de hash predefinida. (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 o URL que corresponde a um conjunto de parâmetros de rota e a um nome de rota. (Herdado de Control) |
| GetRouteUrl(String, RouteValueDictionary) |
Obtém o URL que corresponde a um conjunto de parâmetros de rota e a um nome de rota. (Herdado de Control) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetUniqueIDRelativeTo(Control) |
Devolve a parte prefixada da UniqueID propriedade do controlo especificado. (Herdado de Control) |
| HasControls() |
Determina se o controlo do servidor contém algum controlo filho. (Herdado de Control) |
| HasEvents() |
Devolve um valor que indica se os eventos estão registados para o controlo ou para quaisquer controlos filhos. (Herdado de Control) |
| IsLiteralContent() |
Determina se o controlo do servidor contém apenas conteúdo literal. (Herdado de Control) |
| LoadControlState(Object) |
Restaura a informação do estado de controlo a partir de um pedido de página anterior que foi guardado pelo SaveControlState() método. (Herdado de Control) |
| LoadViewState(Object) |
Restaura a informação de estado de visualização de um pedido anterior que foi guardado com o SaveViewState() método. (Herdado de WebControl) |
| MapPathSecure(String) |
Recupera o caminho físico para o qual um caminho virtual, seja absoluto ou relativo, mapeia. (Herdado de Control) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MergeStyle(Style) |
Copia quaisquer elementos não em branco do estilo especificado para o controlo Web, mas não sobrescreve quaisquer elementos de estilo existentes do controlo. Este método é utilizado principalmente por reveladores de controlo. (Herdado de WebControl) |
| OnBubbleEvent(Object, EventArgs) |
Determina se o evento para o controlo do servidor é passado para a hierarquia de controlo do servidor UI da página. (Herdado de Control) |
| OnDataBinding(EventArgs) |
Eleva o DataBinding evento. (Herdado de Control) |
| OnInit(EventArgs) |
Eleva o Init evento. (Herdado de Control) |
| OnLoad(EventArgs) |
Eleva o Load evento. (Herdado de Control) |
| OnPreRender(EventArgs) |
Aumenta o PreRender evento para o FileUpload controlo. |
| OnUnload(EventArgs) |
Eleva o Unload evento. (Herdado de Control) |
| OpenFile(String) |
Recebe um Stream usado para ler um ficheiro. (Herdado de Control) |
| RaiseBubbleEvent(Object, EventArgs) |
Atribui quaisquer fontes do evento e da sua informação ao pai do controlo. (Herdado de Control) |
| RemovedControl(Control) |
Chamado após um controlo filho ser removido da Controls coleção do Control objeto. (Herdado de Control) |
| Render(HtmlTextWriter) |
Envia o FileUpload conteúdo de controlo para o objeto especificado, HtmlTextWriter que escreve o conteúdo para renderizar no cliente. |
| RenderBeginTag(HtmlTextWriter) |
Renderiza a etiqueta de abertura HTML do controlo ao escritor especificado. Este método é utilizado principalmente por reveladores de controlo. (Herdado de WebControl) |
| RenderChildren(HtmlTextWriter) |
Exporta o conteúdo dos filhos de um controlo de servidor para um objeto fornecido HtmlTextWriter , que escreve o conteúdo a ser renderizado no cliente. (Herdado de Control) |
| RenderContents(HtmlTextWriter) |
Apresenta o conteúdo do controlo ao autor especificado. Este método é utilizado principalmente por reveladores de controlo. (Herdado de WebControl) |
| RenderControl(HtmlTextWriter, ControlAdapter) |
Fornece conteúdo de controlo do servidor para um objeto fornecido HtmlTextWriter usando um objeto fornecido ControlAdapter . (Herdado de Control) |
| RenderControl(HtmlTextWriter) |
Fornece conteúdo de controlo do servidor para um objeto fornecido HtmlTextWriter e armazena informação de rastreamento sobre o controlo se o rastreio estiver ativado. (Herdado de Control) |
| RenderEndTag(HtmlTextWriter) |
Renderiza a etiqueta HTML de fecho do controlo no escritor especificado. Este método é utilizado principalmente por reveladores de controlo. (Herdado de WebControl) |
| ResolveAdapter() |
Faz com que o adaptador de controlo seja responsável por renderizar o controlo especificado. (Herdado de Control) |
| ResolveClientUrl(String) |
Recebe um URL que pode ser usado pelo navegador. (Herdado de Control) |
| ResolveUrl(String) |
Converte uma URL numa que seja utilizável no cliente solicitante. (Herdado de Control) |
| SaveAs(String) |
Guarda o conteúdo de um ficheiro carregado num caminho especificado no servidor Web. |
| SaveControlState() |
Guarda quaisquer alterações no estado de controlo do servidor que tenham ocorrido desde que a página foi publicada de volta no servidor. (Herdado de Control) |
| SaveViewState() |
Guarda qualquer estado que tenha sido modificado após o TrackViewState() método ter sido invocado. (Herdado de WebControl) |
| SetDesignModeState(IDictionary) |
Define dados em tempo de projeto para um controlo. (Herdado de Control) |
| SetRenderMethodDelegate(RenderMethod) |
Atribui um delegado handler de eventos para renderizar o controlo do servidor e o seu conteúdo no controlo pai. (Herdado de Control) |
| SetTraceData(Object, Object, Object) |
Define os dados de rastreio para o rastreio em tempo de design dos dados de renderização, usando o objeto rastreado, a chave de dados de traço e o valor dos dados de traço. (Herdado de Control) |
| SetTraceData(Object, Object) |
Define os dados de rastreio para o rastreio em tempo de design dos dados de renderização, usando a chave de dados de traço e o valor dos dados de traço. (Herdado de Control) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TrackViewState() |
Faz com que o controlo acompanhe alterações ao estado de visualização para que possam ser armazenadas na propriedade do ViewState objeto. (Herdado de WebControl) |
evento
| Name | Description |
|---|---|
| DataBinding |
Ocorre quando o controlo do servidor se liga a uma fonte de dados. (Herdado de Control) |
| Disposed |
Ocorre quando um controlo de servidor é libertado da memória, que é a última etapa do ciclo de vida do controlo do servidor quando uma página ASP.NET é solicitada. (Herdado de Control) |
| Init |
Ocorre quando o controlo do servidor é inicializado, que é o primeiro passo no seu ciclo de vida. (Herdado de Control) |
| Load |
Ocorre quando o controlo do servidor é carregado no Page objeto. (Herdado de Control) |
| PreRender |
Ocorre depois do carregamento do Control objeto, mas antes da renderização. (Herdado de Control) |
| Unload |
Ocorre quando o controlo do servidor é descarregado da memória. (Herdado de Control) |
Implementações de Interface Explícita
Métodos da Extensão
| Name | Description |
|---|---|
| FindDataSourceControl(Control) |
Devolve a fonte de dados associada ao controlo de dados para o controlo especificado. |
| FindFieldTemplate(Control, String) |
Devolve o modelo de campo para a coluna especificada no contentor de nomenclatura do controlo especificado. |
| FindMetaTable(Control) |
Devolve o objeto metatable para o controlo de dados que contém. |