H-P Ortner: File-Upload in C

Beitrag lesen

Hallo Michael!

Ja also ich habe das alles mal vesucht nachzuprüfen.
Also nein, ich bekomme es einfach nicht hin :(

<form method="POST" action=" motorsteuerung3.html" enctype="multipart/form-data" target="_new">

^ Das Leerzeichen vor der Seite riecht auf jeden Fall nach Ärger

<input type="file" name="File" size="50"><br>
        <input type="submit" value="DATEIUPLOAD STARTEN" name="Submit">
</form>
<form action=" motorsteuerung3.html" enctype="multipart/form-data">

^ Auch dieses Leerzeichen gefällt mir nicht

<p>
Wählen Sie eine Textdatei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="Datei" type="file" size="50" maxlength="100000" accept="text/*">
</p>
</form>

Wenn ich nun meine Textdatei test.txt auswähle und mittels Enter rüberschiebe, dann bekomme ich den Inhalt der test.txt nicht heraus.
Warum bloß?

Ich denke Dir ist da ein Detail entgangen.

Es gibt bei diesen Beispielen fast immer zwei Seiten.
Ein Formular, mit dem die Datei, die Hochgeladen werden soll ausgewählt wird.
Diese Seite hat beim Formular hat in der Regel bei action eine andere Seite eingetragen.
Diese andere Seite (z.B. Antwort.pl, Antwort.php, Antwort.asp, Antwort.cgi oder sogar Antwort.exe) tut dann das was CGI eben tut.
Das Programm oder Script wird vom Jeweiligen Betriebssystem des Servers abgearbeitet.
Das kannst Du Dir so vorstellen wie wenn Du das Programm in der Eingabeaufforderung von Windows oder in einer Textconsole von Unix startest. Dort gibt es Umgebungsvariablen in der Dosbox siehst Du die dann mit dem Befehl Set.
Zusätzlich zu diesen Varaiblen, die immer vorhanden sind übergibt das CGI (Common Garteway Interface) weitere Varaiblen die der Server liefert. Unter anderem die Felder die in einem Formular übergeben wurde als Umgebungsvariablen dargestellt.
Das Formular zum senden der Daten muss nicht einmal auf dem server liegen.
Ledglich das CGI-Script oder Programm das die Daten auswertet und eine Antwortseite erstellt.
Teste Dich langsam heran:
1. Erstelle die HTML Seite zum Absenden der Datei lokal. Dort sollte das Formular folgendes enthalten.
<form action="http://Ip.Deines.Boards/motorsteuerung3.html" enctype="multipart/form-data">

2. Nimm diese Formularelemente aus Deiner Seite aus dem Server wieder heraus - da brauchst Du sie vererst nicht.

3. Versuche alle Umgebungsvaraiblen die über das CGI kommen in die Antworseite zu schreiben.
http://www.urz.uni-heidelberg.de/Ausbildung/Unterlagen/HTML-Einfuehrung/Html/Text/cgi_d.html
Da sollten sich die üblichen Umgebungsvariablen wiederfinden:
http://selfhtml.teamone.de/cgiperl/intro/umgebungsvariablen.htm#uebersicht

Es sollten dann auch die Varibalen CONTENT_LENGTH und Content_type ausgefüllt sein.
Damit sollte es dann möglich sein die richtige Menge Daten aus der Standardeingabe zu lesen:
http://www-user.tu-chemnitz.de/~fischer/cgi/in.html
http://www.cs.tut.fi/~jkorpela/forms/cgic.html

Aber hier scheint es eher wenige zu geben die sich mit CGI unter C beschäftigen:
http://forum.de.selfhtml.org/archiv/1998_4/t01482.htm

Viele Grüße
H-P Ortner