2012-04-05 5 views
0

私は3つのファイル入力を持つWebページを持っています。フォームには、ユーザーがファイルをアップロードするときに送信する必要がある特定のフィールドがあります。私は自分のPOSTにカスタムデータを追加する方法と、サーバー上でそれを元に戻す方法を理解することができません。 3つのファイルの入力と他のテキストボックス/ドロップダウンでPOSTにカスタムデータを追加

ASPXページ:これは私のコードがどのように見えるかです

<form action="FilesUploader.ashx" method="post"> 

    <div id="dvNewAttachment1"> 
     <span>Attachment Type</span> 
     <select id="ddlAttachmentType1"> 
      <option>T1</option> 
      <option>T2</option> 
      <option>T3</option> 
     </select> 
     <span>Description</span> 
     <input id="txtDesc1" /> 
     <select id="ddlApproval1"> 
      <option>Yes</option> 
      <option>No</option> 
     </select> 
     <input id="fileUploader1" type="file" runat="server" /> 
    </div> 
    <br /> 
    --------------- 
    <div id="dvNewAttachment2"> 
     <span>Attachment Type</span> 
     <select id="ddlAttachmentType2"> 
      <option>T1</option> 
      <option>T2</option> 
      <option>T3</option> 
     </select> 
     <span>Description</span> 
     <input id="txtDesc2" /> 
     <select id="ddlApproval2"> 
      <option>Yes</option> 
      <option>No</option> 
     </select> 
     <input id="fileUploader2" type="file" runat="server" /> 
    </div> 
    <br /> 
    ------------------------------- 
    <div id="dvNewAttachment3"> 
     <span>Attachment Type</span> 
     <select id="ddlAttachmentType3"> 
      <option>T1</option> 
      <option>T2</option> 
      <option>T3</option> 
     </select> 
     <span>Description</span> 
     <input id="txtDesc3" /> 
     <select id="ddlApproval3"> 
      <option>Yes</option> 
      <option>No</option> 
     </select> 
     <input id="fileUploader3" type="file" runat="server" /> 
    </div> 


<input type="submit" /> 

</form> 

これは私のハンドラがどのように見えるかです:

public void ProcessRequest(HttpContext context) 
     { 

      HttpPostedFile myFile = context.Request.Files[0]; 

      int nFileLen = myFile.ContentLength; 

      byte[] buffer = new byte[nFileLen]; 

      using (BinaryReader br = new BinaryReader(myFile.InputStream)) 
      { 
       br.Read(buffer, 0, buffer.Length); 
      } 

     } 

することができますように3つのアップロードがあり、それぞれに添付ファイルの種類と説明があり、ハンドラ内の各入力ファイルを取得する必要があります。

今、私は最初の入力からファイルを処理していますが、後で入力をループして処理します。

+0

とは何ですか。 – Sly

+0

私は自分のPOSTにカスタムデータを追加する方法と、サーバー上に戻す方法を理解できません。 – Asdfg

+0

カスタムデータはどういう意味ですか? – Sly

答えて

0

あなたのハンドラを使用すると、ファイルアップローダに置くファイルを受信しない場合、フォームは次のように追加の属性を持っている必要があります:

<form action="FilesUploader.ashx" method="post" enctype="multipart/form-data"> 

サーバー上のドロップダウンから値を取得するためにあなたがnameを提供する必要があります属性:

<select id="ddlApproval1" name="ddlApproval1"> 
    <option>Yes</option> 
    <option>No</option> 
</select> 
+0

私はcontext.Request.Filesコレクションを使用してファイルにアクセスできます。それは私にすべての3つの入力コントロールを与えます。しかし、私もドロップダウンとテキストボックスを取得する必要があります – Asdfg

+0

は、ドロップダウンをサポートするために私の答えを編集 – Sly

+0

ありがとう。名前の問題を知らなかった。 – Asdfg

関連する問題