FileUpload Web サーバー コントロールの宣言構文
更新 : 2007 年 11 月
サーバーにアップロードするファイルをユーザーが選択できるようにする <input type=file> コントロール (通常はテキスト ボックス コントロールと参照ボタンとして表示) を作成します。
<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"
/>
解説
FileUpload コントロールは、ユーザーがクライアント上のファイルを選択し、それを Web サーバーにアップロードできるようにするテキスト ボックス コントロールと参照ボタンを表示します。ユーザーは、アップロードするファイルのローカル コンピュータにおける完全パス (C:\MyFiles\TestFile.txt など) をコントロールのテキスト ボックスに入力することによって、ファイルを指定します。また別の方法として、[参照] ボタンをクリックし、[ファイルの選択] ダイアログ ボックスでファイルの場所を特定することによって、ファイルを選択することもできます。
ユーザーがアップロードするファイルを選択した後に、FileUpload コントロールによってファイルがサーバーに自動的に送信されることはありません。ユーザーがフォームを送信できるようにするコントロールまたは機構を明示的に用意する必要があります。通常、ファイルの保存やコンテンツの処理は、サーバーへのポストバックを発生させるイベントのイベント処理メソッドで行われます。たとえば、ファイルを送信するためのボタンを用意する場合は、クリック イベントのイベント処理メソッド内に、ファイルを保存するためのコードを配置することが考えられます。FileUpload コントロールの詳細については、「方法 : FileUpload Web サーバー コントロールを使用してファイルをアップロードする」を参照してください。
使用例
コード内で指定されたパスにファイルを保存する FileUpload コントロールを作成する方法を次のコード例に示します。サーバー上の指定されたパスにファイルを保存するために、SaveAs メソッドが呼び出されます。この例を含む ASP.NET アプリケーションには、サーバー上の指定されたディレクトリへの書き込みアクセス許可が付与されている必要があります。これには、アプリケーションを実行しているアカウントに、アップロードされたファイルを保存するディレクトリにおける書き込みアクセス許可を明示的に付与します。また別の方法として、ASP.NET アプリケーションに付与された信頼レベルを上げることもできます。
<%@ 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>
<%@ 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>