Michael Schröpl: Dateien an Browser senden

Beitrag lesen

wie kann man dateien z.B. direkt aus dem cgi-bin verzeichnis auf dem web server an den Browser des Benutzers senden?

Ich halte es nicht für sinnvoll, eine solche Datei im CGI-Verzeichnis abzulegen. Dort gehören CGI-Anwendungen hin und sonst nichts.
Die Datei sollte ganz woanders liegen - das CGI-Skript spricht sie ja ohnehin via Pfadname an.

So soll der Benutzer die datei nur geschickt bekommen, falls er vorher sein richtiges passwort eingeben hat.
Ein normaler Link ist also hier nicht gefragt, da man sonst ja auch ohne passworteingabe z.B. nur per Bookmark sich die datei beliebig herunterladen kann.

Das ist nicht wahr. Schon mal was von http://www.teamone.de/selfaktuell/artikel/schroepl01.htm gehört?
Eigentlich brauchst Du überhaupt keine CGI-Anwendung - nur einen vernünftigen Schutzmechanismus. Und der ist in den meisten Webservern eingebaut.

Muss man anstatt
   print "Content-type: text/html\n\n";

print "Content-type: application/octet-stream\n\n";
schreiben??

Im Prinzip ja (für das, was Du offenbar willst), besser aber den MIME-Typ, der zu Deinem Dateityp paßt.
(Vielleicht will der Client ja, daß das heruntergeladene Archiv sofort von seinem lokalen WinZip geöffnet wird oder was auch immer?)

Wie sende ich dann die Datei an den browser, damit der benutzer sie lokal speichern kann??

Genau wie ein HTML-Dokument: Datei öffnen, Inhalt ausgeben, Datei schließen.