2011-07-19 14 views
0

html投稿からサーバーにファイルをアップロードしようとしています。HTML投稿からサーバーにファイルをアップロードする方法

<form action="insertBlogCat.aspx" method="post" enctype="multipart/form-data"> 

     <input id="uploader" name="userfile" type="file" /> 

     <br /><br /> 

     <input type="submit" value="Upload" id="pxUpload" /> 
     <input type="reset" value="Clear" id="pxClear" /> 
    </form> 

私のサーバー側のコード:

protected System.Web.UI.HtmlControls.HtmlInputFile CatBlogImgFile; 
private void Insert() 
     { 

      if ((CatBlogImgFile.PostedFile != null) && (CatBlogImgFile.PostedFile.ContentLength > 0)) 
      { 
       string fn = System.IO.Path.GetFileName(CatBlogImgFile.PostedFile.FileName); 
       string SaveLocation = Server.MapPath("Data") + "\\" + fn; 
       try 
       { 
        CatBlogImgFile.PostedFile.SaveAs(SaveLocation); 
        Response.Write("The file has been uploaded."); 
       } 
       catch (Exception ex) 
       { 


       } 
      } 
      else 
      { 
       Response.Write("Please select a file to upload."); 
      } 
     } 

しかしCatBlogImgFile.PostedFile値は、HTMLファイルからの投稿の後には常にnullです。助けてください。前もって感謝します。

答えて

2

通常のHTML要素とそのようなサーバー側のコントロールを混在させることはできません。

どちらのASPXページ(<asp:FileUpload />)でASP.Net WebBrowserコントロールを使用するか、または直接Requestオブジェクトを使用すると、すべてのサーバー側のコントロールを使用しないでください(Request.Files

0

あなたはRequest.Filesかどうかを確認することをお勧めしますコレクションにはすべてのコンテンツがあります。通常、WebFormsでは、アップロードを行うために別のコントロールを使います。

また、MSDNの記事:How to: Add HTML Server Controls to a Web Page Using ASP.NET Syntaxを参照してください。あなたが欠けている主なものはrunat="server"部分です。