in http request checkboxes setzen als multipart/data-form

Student1903

Grünschnabel
Hallo,

bin ziemlich neuling in Sachen Webapplikationen und habe ein Problem (welch ein Wunder). Seid mir bitte nicht boese, falls ich irgendetwas falsch schreibe bzw. wenn ich im falschen Forum bin. Mein Frage ist folgendes:

Ich moechte zu einem Webserver eine http-request schicken, um eine File upzuloaden und dabei muessen auch manche checkboxes gesetzt sein, die ich im request mitschicken muss. Bisher war file-upload schon erfolgreich aber beim setzen der checkboxes habe ich Probleme.

Webserver hat die Sachen folgendermassen definiert:

Code:
<input type="hidden" name="username" value="myUsername" />
<input type="hidden" name="password" value="myPassword" />
<input type="file" name="formFile" value="" /><br />

Bei dem "formFile" muss die "value" also entsprechend beim http-request gesetzt werden.
Ich mache folgendes und es funktioniert sehr gut:
Code:
--A0sFSD
Content-Disposition: form-data; name="username"

myUsername
--A0sFSD
Content-Disposition: form-data; name="password"

myPassword
--A0sFSD
Content-Disposition: form-data; name="formFile"; filename="Uploadtest"
Content-Transfer-Encoding: binary
Content-Type: application/octet-stream

.... blablabla

Also, username und password wird akzeptiert und das File wird auch hochgeladen und ein entsprechendes response wird zurueckgeschickt. Soweit alles gut.
Nun definiert der Webserver weiter folgendes, was fuer checkboxes steht:

Code:
	<input type="hidden" name="trackTypes" value="mountainbiking" />
	<input type="hidden" name="trackTypes" value="biking" />
	<input type="hidden" name="trackTypes" value="racingbike" />

"trackTypes" ist also der Name der Gruppe von Checkboxes, die unterschiedliche Namen tragen wie "biking" und noch vieles mehr. Als type ist hidden angegeben, da diese checkboxes nicht visualisiert werden, sondern in http-req gecheckt werden.

Wenn ich folgendes mache, wird es angenommen:

Code:
--A0sFSD
Content-Disposition: form-data; name="trackTypes"

mountainbiking

Nun, wenn ich aber mehrere checkboxes setzen will, dann geht das nicht mehr. Ich probiere zum Beispiel die value mit komme, semikolon oder aehnliches zu trennen, wie zum beispiel:

Code:
--A0sFSD
Content-Disposition: form-data; name="trackTypes"

mountainbiking, biking

Dann wird das ganze string "mountainbiking, biking" so angenommen, wie wenn es eine checkbox zu setzen waere, die "mountainbiking, biking" heisst und da sowas nicht existiert, kommt ne error. Ich kann also "biking" bzw. "mountainbiking" eizeln setzen, aber beides kann ich nicht setzen.

Folgendes funktioniert zum Beispiel auch NICHT:

Code:
--A0sFSD
Content-Disposition: form-data; name="trackTypes"

mountainbiking
--A0sFSD
Content-Disposition: form-data; name="trackTypes"

biking

Ich habe viele andere Sachen auch ausprobiert, die nicht funktioniert haben und im Internet habe ich auch keine Informationen darueber gefunden, wie man in http-req die checkboxes als multipart/data-form (oder was auch immer) setzen kann. Ich finde immer die Informationen wie man file hochladen kann, was ich auch geschafft hab, aber ich habe nirgendwo was gefunden, das mir erklaert, wie ich mehrere checkboxes mit "Content-dispo....." setzen soll?

Bitte entschuldigt mich, falls meine Frage jetzt zu komisch ist, aber ich kenn mich nicht so gut aus und weiss ehrlich gesagt auch nicht ob das Thema hier reinpasst. Bitte um Verzeihung!

Auf jegliche Erklaerung, Erlaeuterung etc. bin ich sehr dankbar!

Gruesse
 
Versuch mal das:
HTML:
<input type="hidden" name="trackTypes[]" value="mountainbiking" />
<input type="hidden" name="trackTypes[]" value="biking" />
<input type="hidden" name="trackTypes[]" value="racingbike" />
Damit bewirkst du, dass die Daten in einem Array (oder Liste) gespeichert werden. Ich kann dir jetzt aber nicht sagen, wie das der Server in Kopfdaten umsetzt, aber notfalls musst du noch etwas an deinem Server schrauben.
 
Der Server gehoert nicht mir, sondern es ist extern. Da kann ich nichts veraendern. Ich bin also der Client und muss die Sachen zum Server schicken. Bisher habe ich nur ein beispiel-quellcode vom Server, und das ist das mit inputs...
 

Neue Beiträge

Zurück