Hallo, im lwIP/contrib-Ordner gibts unter anderem auch den Sourcecode für einen HTTP-Server. Den habe ich nun hier implementiert, und er läuft auch. Die Website wird wie gewünscht dargestellt, alles gut soweit. Nun möchte ich einen simplen Datei-Upload via HTTP POST realisieren. Leider blicke ich hier gar nicht durch, wie ich das mit diesem HTTP Server machen soll. Zwar gibts ein #define LWIP_HTTPD_SUPPORT_POST, das ich auf 1 gesetzt habe. Somit sollte HTTP POST also möglich sein. Aber was brauche ich noch?
Tobias Plüss schrieb: > Aber > was brauche ich noch? Na jemand der den POST request bearbeitet und irgendwas mit den Daten anstellt... POST != Dateiupload!
Ja das ist ja wohl klar ;-) Du hast dir den von mir genannten Code wohl nicht angesehen. Denn dort wird ersichtlich: es gibt eine Callback-Funktion, die angeblich laut nicht vorhandener Dokumentation zum genannten HTTP-Code aufgerufen werden sollte, wenn ein POST-Request eintrifft. Die wird aber nicht aufgerfen. Eine Analyse mit Wireshark zeigte dann auch warum: im HTTP POST-Request, den mein Internet Explorer absendet, steht drin "Content Length: 0", was definitiv falsch ist! Auf meiner Website ist ein simpels Formular mit <form method="post" action=""> <input type="text" id="test" /> <input type="submit" /> </form> Somit sollte beim Drücken des Senden-Buttons der Inhalt der einen Textbox im Post-Request stehen und somit "Content Length" ungleich 0 sein. Oder nicht?
Schaue dir die Appnote an LwIP IAP an. Dort wird lwIP verwendet mit einerm Http Server, um Flashfiles für IAP zu empfangen. Habe es leider selbst noch nicht getestet.
Tobias Plüss schrieb: > Du hast dir den von mir genannten Code wohl > nicht angesehen Hättest du die relevante Codestelle verlinkt hätte ich sie mir sicherlich angesehen... Aber nicht jeder steckt in "deinem" Thema derat drinne das er mit ein paar Wortfetzen sofort alles klar ist daher: Problem möglichst genau beschreiben. Das es eine Callbackfunktion nicht aufgerufen wird oder du Probleme mit content-length des IEs hast steht in keinem Satz erwähnt! Tobias Plüss schrieb: > Somit sollte beim Drücken des Senden-Buttons der Inhalt der einen > Textbox im Post-Request stehen Nein ist es nicht, dein Formular enthält effektiv keine Daten! Folgendes solltest du auf jeden Fall anpassen: - Jedes Input sollte (bis auf den Submitbutton) einen Namen erhalten also:
1 | <input type="text" id="test" name="ein_text_feld"/> |
Als Ziel/Action besser die konkrete URL angeben also z.B.
1 | <form method="post" action="submit.cgi"> |
Allgemein haben diese Probleme aber nix mit lwIP zu tun, weswegen es sich anbietet erst mal ein Funktionierendes Formular mit einem "normalem" Webserver zu erstellen wo man einfacher debuggen kann und dann mit dem Funktionierendem Beispiel angeblich nicht funktionierende andere Module zu testen, sonst weißt du nie was nun fehlerhaft ist: Dein Test oder das getestete Objekt.
Ach ja, so sieht ein POST Request aus: http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP_POST Im Grunde wird die Länge übergeben und dann folgen die Daten. Kann man recht einfach verarbeiten.
Läubi .. schrieb: > - Jedes Input sollte (bis auf den Submitbutton) einen Namen erhalten > also:<input type="text" id="test" name="ein_text_feld"/> Was sagt Wireshark wenn du dem Formularfeld einen Namen gibst? Läubi .. schrieb: > Als Ziel/Action besser die konkrete URL angeben also z.B.<form method="post" action="submit.cgi"> Naja die Daten an die gleiche Seite zurückzusenden ohne extra-URL sollte eigentlich auch gehen. Ansonsten eben mal aufm normalen Webserver testen (dann kannnste dir das ja auch mit Wireshark angucken)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.