Christoph Zurnieden: input type="file" in c verstehe ich nicht

Beitrag lesen

Hallo,

enctype="multipart/form-data" method="post">
  buchst=getchar();
getchar() liest von STDIN. Allerdings werden die Daten von der Form
per Argument übergeben. Du müßtest die dann auslesen.

Aber nicht doch. POST liefert die Daten wirklich via stdin.

Ja, mein Fehler.
Peinlich peinlich!
*Öchött* ,-)

(Eine komplette Datei in den URL zu quetschen wäre auch keine Art ... ;-)

Ooooch, warum? ;-)

Was ich aber grundsätzlich vermisse, ist eine Behandlung des CGI-Multipart-
Formates. Das ist ganz schön lästig - da steht nämlich keineswegs einfach
der Inhalt der Datei drin, sondern wesentlich mehr, und das mußt Du alles
mühsam in einzelne Felder zerlegen und Dir diejenigen Informationen heraus
suchen, die Du brauchst. (Beispielsweise wird ja auch der Name der hochge-
ladenen Datei mitgeliefert).

Es schien mir eine minimierte Fassung zu sein, nur um zu prüfen, ob überhaupt was ankommt. (Sonst hätter er ja wohl auch den CONTENT_LENGTH benutzt et al) Und das tat es eben nicht, das war das Problem.
Ich finde auch so keinen Fehler, entweder bin ich blind auf den Augen(wahrscheinlich, wenn man schon "post" als "get" liest ;-), oder irgendwas stimmt in der Umgebung nicht.
(Auch nicht gerade unwahrscheinlich, ist ja schließlich Windows ;-)

Tips, damit Du auf die Füße fällst:
a) Lade mal eine einfache Textdatei mit "Hello world" drin hoch, speichere
   alles ab, was über stdin kommt, und schaue es Dir an.
b) Gib mal den Inhalt sämtlicher Environment-Variablen aus. Irgendwo darin
   findest Du denjenigen Wert, welcher die einzelnen Multipart-Abschnitte
   voneinander trennt - den brauchst Du, um sie wieder zerlegen zu können.

Vielleicht hätte ich eben vor dem Posten meines anderen Beitrags nochmal nachschauen sollen ;-)

Ansonsten muß ich Christoph voll und ganz zustimmen: Das ist keine Aufgabe,
die ich unbedingt in C lösen möchte.
In PHP und Perl gibt es das praktisch als fertiges Produkt.

Aber, wie ich auch schon sagte: wer weiß, was er mit den empfangenen Daten so alles anstellen will. Die Datei mit PHP zu empfangen, um von dort aus eine zweites Programm zur Bearbeitung zu starten ist zwar einfacher, aber für Highspeed Enthusiasten ... ;-)

so short

Christoph Zurnieden