FileUpload.FileBytes Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar en matris med byte i en fil som anges med hjälp av en FileUpload kontroll.
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()
Egenskapsvärde
En Byte matris som innehåller innehållet i den angivna filen.
- Attribut
Undantag
Hela filen lästes inte.
Exempel
I följande exempel visas hur du skapar en FileUpload kontroll. När användaren klickar på knappen Ladda upp fil visas innehållet i filen som byte i en textruta på sidan. I det här exemplet används egenskapen FileBytes för att ladda upp hela filen.
<%@ 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>
Kommentarer
Kontrollen FileUpload läser inte filen automatiskt från klienten. Du måste uttryckligen ange en kontroll eller mekanism för att användaren ska kunna skicka den angivna filen. Du kan till exempel ange en knapp som användaren kan klicka på för att ladda upp filen. Koden som du skriver för att spara den angivna filen kan anropa FileBytes egenskapen, som returnerar innehållet i filen.
Innan du anropar FileBytes egenskapen bör du använda HasFile egenskapen för att kontrollera att FileUpload kontrollen innehåller en fil som ska laddas upp.
HasFile Om returnerar trueanropar du egenskapenFileBytes. Om den returnerar falsevisar du ett meddelande till användaren som anger att kontrollen inte innehåller någon fil. Om du inte anger felhanteringskod för att verifiera att en fil finns, utlöser ett försök att spara en obefintlig fil ett HttpException undantag.