ファイルのアップロード機能を実装する方法
サンプル コードのダウンロード (PHPtips_Upload.msi, 245 KB)
※このサンプルをお使いいただくためには、Visual Studio 2005 が必要です。
クライアントからサーバーへファイルをアップロードするには、PHP では、enctype 属性を "multipart/form-data" に、method 属性を "post" にしたフォームを用意します。このフォームの中に、type 属性を "file" にした <input> タグを使うことで実装します。従来の ASP では、enctype 属性を "multipart/form-data" に、method 属性を "post" に、action 属性に処理を行うページを指定したフォームを用意します。このフォームの中に type 属性を "file" にした <input> タグを使うことで実装します。 ASP.NET 2.0 では、enctype 属性を "multipart/form-data" に、method 属性を "post" にしたフォームと、FileUpload コントロールを使って実装できます。では、実際にファイルをアップロードするページを作ってみましょう。
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Sample Page</title> </head> <body> <form id="form1" runat="server" enctype="multipart/form-data" method="post"> <div> <asp:FileUpload ID="FileUpload" runat="server" /><br /> <asp:Button ID="btnUpload" runat="server" Text="アップロード" /> </div> </form> </body> </html> |
リスト1.指定したファイルをアップロードする Default.aspx
はじめに、enctype 属性を "multipart/form-data" に、method 属性を "post" に指定したフォームを作成します。そのフォームの中に、FileUpload という ID を持つ FileUpload コントロールと、btnUpload という ID を持つボタン コントロールを用意します。(リスト1)。ファイルをアップロードするには、FileUpload コントロールでファイルを選択します。ファイルを選択した後に、btnUpload を押すと、FileUpload コントロールの SaveAs メソッドを使ってサーバーの "c:\" にファイルをアップロードします。(リスト2)。
Partial Class _Default Inherits System.Web.UI.Page Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles btnUpload.Click FileUpload.SaveAs("c:\" + FileUpload.FileName) End Sub End Class |
リスト2.指定したファイルをアップロードする Default.aspx.vb
図1 サンプル Default.aspx の表示画面
FileUpload コントロールの [参照] ボタンを押すと、ファイルの選択ダイアログ ボックスが表示されます(図2)。アップロードするファイルを選択し、[開く] ボタンを押して確定した後、[アップロード] ボタンを押すとサーバーへファイルがアップロードされます。
図2 ファイルの選択ダイアログ ボックス
図3 ファイルを選択した後の Default.aspx の表示画面