Anzeige:
Ergebnis 1 bis 15 von 60

Thema: (HTTP) Server mit Qt4

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #21
    Registrierter Benutzer
    Registriert seit
    18.04.2008
    Beiträge
    59
    Zitat Zitat von TheDodger Beitrag anzeigen
    Also 2 völlig verschiedene Wege um die POST-Variablen auszuwerten ...
    Bei #1 fällt dann auch auf, dass 'Content-Disposition: form-data; ...' mehrmals vorkommt.
    Ich bin ja so vorgegangen, dass ich vom letzten Eintrag anfange zu parsen. Scheinbar funktioniert das aber nicht wie gewünscht ...
    Ja, man braucht wahrscheinlich mindestens 2 Schritte um postdata zu parsen.

    Aber dass sind, soweit ich weiss, auch die einzigen 2 Fälle die auch andere Webserver abfangen.

    Ich glaube so könnte der Ablauf funktionieren:

    Allgemein Header splitten auf ':' zum Auslesen.

    Wenn POST dann (content-length speichern etc.) im
    HEADER['content-type'] auf "boundary" oder "multipart" testen.

    Wenn es kein Multipart ist und boundary enthält, kann man die Parameter (wie #1)
    zerlegen.
    Ansonsten boundary speichern ( #2 ), dann muss man parsen, z.B. mit spiltten nach boundary, diese beginnen mit
    Code:
    "\r\n--" + boundary
    und in einer Schleife analysieren, wenn dann ein filename enthalten ist, muss dies temporär gespeichert werden, z.B. nach /tmp mit einem "tmp name".

    #1 Nach new 2 NewLines "\r\n\r\n" und als QUERY_STRING speichern,
    (ggf. nach & und = zerlegen)

    #2 mit boundary, dann boundaries zerlegen.
    Aus der 'content-disposition' Line name und ggf. filename extrahieren,
    ggf. alles nach Semikolon auf '=' splitten.
    Wenn zwischen den Boundaries 'content-type' vorkommt, dann die eingelesen Chars (data)
    als Datei speichern, ansonsten als Postdata in z.B. POST[name] = data .


    Ich denke das kann auch richtig Spass machen
    Geändert von zenobic (10-01-2011 um 19:41 Uhr)

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •