2012-04-05 19 views
0

Ich habe eine Webseite, die 3 Dateieingänge hat. Es gibt bestimmte Felder im Formular, die gesendet werden müssen, wenn der Benutzer die Datei hochlädt. Ich bin nicht in der Lage herauszufinden, wie ich benutzerdefinierte Daten zu meinem POST hinzufügen und wie ich es wieder auf dem Server abrufen. Dies ist, wie mein Code wie folgt aussieht:hinzufügen benutzerdefinierte Daten zu POST

ASPX Seite mit 3 Dateieingaben und anderen Textfelder/Dropdown-Listen:

<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> 

Dies ist, wie mein Handler wie folgt aussieht:

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); 
      } 

     } 

Wie Sie können siehe Ich habe 3 Uploads und jedes hat Attachment Typ und Beschreibung zugeordnet, die ich für jede Eingabedatei in meinem Handler abrufen muss.

Im Moment bin ich nur Verarbeitung der Datei von der ersten Eingabe, aber später werde ich Schleife durch die Eingänge und verarbeiten sie.

+0

und was ist Ihre Frage? – Sly

+0

Ich bin nicht in der Lage herauszufinden, wie ich benutzerdefinierte Daten zu meinem POST hinzufügen und wie ich es wieder auf dem Server abrufen. – Asdfg

+0

Was meinen Sie mit benutzerdefinierten Daten? – Sly

Antwort

0

Wenn Ihr Handler erhalten keine Dateien, die Sie in der Datei uploaders legen Sie dann das Formular muss wie dieses zusätzliche Attribut haben:

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

Um Werte von Dropdown-Listen auf dem Server erhalten Sie einen name zur Verfügung stellen müssen Attribut an sie:

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

Ich bin in der Lage, auf die Dateien zugreifen mit Context.Request.Files Sammlung. Es gibt mir alle 3 Eingabesteuerelemente. Aber ich muss auch Dropdown-Menüs und Textfelder – Asdfg

+0

bearbeitet meine Antwort auf Drop-down-Unterstützung – Sly

+0

danke. Ich wusste nicht, wie wichtig der Name ist. – Asdfg

Verwandte Themen