FileUpload.FileBytes Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene una matriz de los bytes de un archivo que se especifica mediante un control FileUpload.
public:
property cli::array <System::Byte> ^ FileBytes { cli::array <System::Byte> ^ get(); };
[System.ComponentModel.Bindable(true)]
[System.ComponentModel.Browsable(false)]
public byte[] FileBytes { get; }
[<System.ComponentModel.Bindable(true)>]
[<System.ComponentModel.Browsable(false)>]
member this.FileBytes : byte[]
Public ReadOnly Property FileBytes As Byte()
Valor de propiedad
- Byte[]
Matriz Byte con el contenido del archivo especificado.
- Atributos
Excepciones
No se leyó el archivo completo.
Ejemplos
En el ejemplo siguiente se muestra cómo crear un FileUpload control . Cuando el usuario hace clic en el botón Upload archivo, el contenido del archivo se muestra como bytes en un cuadro de texto de la página. En este ejemplo se usa la FileBytes propiedad para cargar todo el archivo.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>FileUpload.FileContent Property Example</title>
<script runat="server">
private void DisplayFileContents(HttpPostedFile file)
{
int fileLen;
string displayString = "";
// Get the length of the file.
fileLen = FileUpload1.PostedFile.ContentLength;
// Display the length of the file in a label.
LengthLabel.Text = "The length of the file is "
+ fileLen.ToString() + " bytes.";
// Create a byte array to hold the contents of the file.
byte[] input = new byte[fileLen - 1];
input = FileUpload1.FileBytes;
// Copy the byte array to a string.
for (int loop1 = 0; loop1 < fileLen; loop1++) {
displayString = displayString + input[loop1].ToString();
}
// Display the contents of the file in a
// textbox on the page.
ContentsLabel.Text = "The contents of the file as bytes:";
TextBox ContentsTextBox = new TextBox();
ContentsTextBox.TextMode = TextBoxMode.MultiLine;
ContentsTextBox.Height = Unit.Pixel(300);
ContentsTextBox.Width = Unit.Pixel(400);
ContentsTextBox.Text = displayString;
// Add the textbox to the Controls collection
// of the Placeholder control.
PlaceHolder1.Controls.Add(ContentsTextBox);
}
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) {
// Append the name of the file to upload to the path.
savePath += 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.";
// Call a helper routine to display the contents
// of the file to upload.
DisplayFileContents(FileUpload1.PostedFile);
}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload.";
}
}
</script>
</head>
<body>
<h3>FileUpload.FileContent Property Example</h3>
<form id="Form1" runat="server">
<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>
<br /><br />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
<hr />
<asp:Label id="LengthLabel"
runat="server">
</asp:Label>
<br /><br />
<asp:Label id="ContentsLabel"
runat="server">
</asp:Label>
<br /><br />
<asp:PlaceHolder id="PlaceHolder1"
runat="server">
</asp:PlaceHolder>
</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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>FileUpload.FileContent Property Example</title>
<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
' Append the name of the file to upload to the path.
savePath += 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."
' Call a helper routine to display the contents
' of the file to upload.
DisplayFileContents(FileUpload1.PostedFile)
Else
' Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload."
End If
End Sub
Sub DisplayFileContents(ByVal file As HttpPostedFile)
Dim fileLen As Integer
Dim displayString As String = ""
' Get the length of the file.
fileLen = FileUpload1.PostedFile.ContentLength
' Display the length of the file in a label.
LengthLabel.Text = "The length of the file is " _
& fileLen.ToString() & " bytes."
' Create a byte array to hold the contents of the file.
Dim Input(fileLen - 1) As Byte
Input = FileUpload1.FileBytes
' Copy the byte array to a string.
For loop1 As Integer = 0 To fileLen - 1
displayString = displayString & Input(loop1).ToString()
Next loop1
' Display the contents of the file in a
' textbox on the page.
ContentsLabel.Text = "The contents of the file as bytes:"
Dim ContentsTextBox As New TextBox
ContentsTextBox.TextMode = TextBoxMode.MultiLine
ContentsTextBox.Height = Unit.Pixel(300)
ContentsTextBox.Width = Unit.Pixel(400)
ContentsTextBox.Text = displayString
' Add the textbox to the Controls collection
' of the Placeholder control.
PlaceHolder1.Controls.Add(ContentsTextBox)
End Sub
</script>
</head>
<body>
<h3>FileUpload.FileContent Property Example</h3>
<form id="Form1" runat="server">
<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>
<br /><br />
<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
<hr />
<asp:Label id="LengthLabel"
runat="server">
</asp:Label>
<br /><br />
<asp:Label id="ContentsLabel"
runat="server">
</asp:Label>
<br /><br />
<asp:PlaceHolder id="PlaceHolder1"
runat="server">
</asp:PlaceHolder>
</form>
</body>
</html>
Comentarios
El FileUpload control no lee automáticamente el archivo del cliente. Debe proporcionar explícitamente un control o mecanismo para permitir al usuario enviar el archivo especificado. Por ejemplo, puede proporcionar un botón en el que el usuario puede hacer clic para cargar el archivo. El código que escriba para guardar el archivo especificado podría llamar a la FileBytes propiedad , que devuelve el contenido del archivo.
Antes de llamar a la FileBytes propiedad , debe usar la HasFile propiedad para comprobar que el FileUpload control contiene un archivo que se va a cargar. HasFile Si devuelve true
, llame a la FileBytes propiedad . Si devuelve false
, muestra un mensaje al usuario que indica que el control no contiene un archivo. Si no proporciona código de control de errores para comprobar que existe un archivo, un intento de guardar un archivo inexistente produce una HttpException excepción.