[cgi] Datei-Upload

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
TheNoOne
Beiträge: 48
Registriert: 23.02.2004 17:08:06

[cgi] Datei-Upload

Beitrag von TheNoOne » 03.06.2005 16:07:53

Hallo,
ich weiß das hat jetzt nix mit debian und linux zu tun, aber ich hab mir gedacht, dass es hier vielleicht ein paar leute gibt, die sich mit cgi etc auskennen.

Ich möchte ein cgi-Programm unter c schreiben, dass einen Datei-Upload erzeugt. Der Benutzer kann also über ein HTML-Fomular ein bestimmtes Kennwort eingeben und beim klicken eines buttons wird dann der Download-gestartet.

Was mir halt irgendwie fehlt ist das Hintergrundwissen zum Dateiupload. Ich hab das Programm bisher auf meinem Apache-Server mit HTML-Dateien getesten also sprich "Content-Type: html/text" usw. ich möchte allerdings verhindern, dass die Dateien für jedermann über einen Link downloadbar sind - also keine Lösung des Problems über eine Weiterleitung in der html-Datei.

Ich hab mir schon gedacht, dass es irgendwie mit "Content-Type: application/g-zip oder sowas in der Art gehen müsste, dass der Download gleich startet, hab aber bisher erfolglos nach Doku gesucht.
Kennt da jemand vielleicht den genauen Ablauf so einer Übertragung?

Greetz & THX
T.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 03.06.2005 22:55:10

Müsste es nicht reichen, ein printf("Content-Type: application/octet-stream\n\n"); gefolgt von dem Inhalt der Datei, zu senden?
Den Dateinamen kann man auch noch irgendwie im Header übergeben.

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 04.06.2005 00:14:59

Zumindest Content-Lenght sollte noch dabei sein.

Ich hab das mal vor einer Weile gemacht. an den Code komm ich aber frühestens am Montag (Arbeit).

Mir hat damals die LiveHTTPHeader Extension von Firefox geholfen. Damit einfach mal auf eine entsprechende Seite gehen und schauen was da so durch die Gegend gesendet wird. Alternativ kannst Du Dir natürlich auch die entsprechenden RFC durchlesen, aber glaub mir, das mit den LiveHeadern geht schneller/einfacher ;-)

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Antworten