ファイルをアップロードするコンテンツを作るとき.net2.0なら サーバーコントロールのFileUploadコンポーネントを使用する。

しかしこれは.net2.0からの機能となる。 そこで.net1.1までは以下のように実装する。

<input type="file">をHTMLサーバーコントロールに変換して対応。

HTMLコード

   


   <div>

        <input runat="server" id="FileUpload" type="file" />
    <br />
    <asp:Button ID="BtnFileUpload" runat="server" Text="Upload" onclick="BtnFileUpload_Click" />
    </div>

C#コード

   


       protected void Page_Load(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// ファイルアップロードボタンクリック動作
        /// <input type="file">をHTMLコントロールに変換しておく
        /// 例ではID="FileUpload"で設定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnFileUpload_Click(object sender, EventArgs e)
        {
            HttpPostedFile oPostFile = FileUpload.PostedFile;

            if (oPostFile.FileName == String.Empty) 
            {
                //エラー処理 ファイルなし
            }

             //保存する場合はSaveAsメソッドを使用する
            //oPostFile.SaveAs("filepath");

            //読み込んで処理をする場合は以下
            System.IO.StreamReader reader = null;

            try
            {
                reader = new System.IO.StreamReader(oPostFile.InputStream);

               //StreamReader の処理を行う
            }
            catch
            {
                //エラー処理
            }
            finally 
            {
                if (reader != null) reader.Close();
            }
        }