FileUpload.FileBytes 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从使用 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()
属性值
Byte[]
Byte 数组,包含指定文件的内容。
- 属性
例外
未读取整个文件。
示例
以下示例演示如何创建 FileUpload 控件。 当用户单击“ 上传文件 ”按钮时,文件的内容将在页面上的文本框中显示为字节。 此示例使用 FileBytes 属性上传整个文件。
<%@ 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>
注解
控件 FileUpload 不会自动从客户端读取文件。 必须显式提供控件或机制,以允许用户提交指定的文件。 例如,可以提供一个按钮,用户可以单击该按钮来上传文件。 为保存指定文件而编写的代码可以调用 FileBytes 属性,该属性返回文件的内容。
在调用 属性 FileBytes 之前,应使用 HasFile 属性来验证控件是否 FileUpload 包含要上传的文件。
HasFile如果 返回 true
,则调用 FileBytes 属性。 如果返回 false
,则向用户显示一条消息,指示控件不包含文件。 如果未提供错误处理代码来验证文件是否存在,则尝试保存不存在的文件将 HttpException 引发异常。