Stephan Schmid: Schwierige Frage zu CGI Download - oder wie kann ich einen Filenamen aendern

Hallo zusammen.

Ich schreibe ein CGI, welches dynamisch Files zum downloaden anbietet (Intranet).
Pro File erscheint eine Form mit einem Submit button und einem hidden Feld mit Dateiname.
Diese Form macht ein POST request an ein CGI, welches das File an den Browser schicken soll (nicht mit Referer, da das File sich irgenwo befinden kann).
Dabei liest das CGI die Datei von der lokalen Festplatte, und liefert es mit 'content-type: application/octet-stream' zum Browser. Dieser oeffnet erwartungsgemaess eine 'Save As..' Dialogbox.

Das Problem: Standardmaessig erscheint in dieser Dialogbox der Name des CGI Skripts (da ja dieser eigentlich die Daten liefert).

Frage: Gibt es eine Moeglichkeit, diesen Namen zu aendern, z.B. mit (mir unbekannten) HTTP Header Eintraegen?

Besten Dank für einen heissen Tip!

Stephan

  1. Frage: Gibt es eine Moeglichkeit, diesen Namen zu aendern, z.B. mit (mir unbekannten) HTTP Header Eintraegen?

    Besten Dank für einen heissen Tip!

    Stephan

    Hi Stephan!

    Normalerweise funktioniert bereits

    ...
    <form action="http://web.server/cgi/skript.pl/meinDateiname.dat" method="post" ...>

    anstelle von

    <form action="http://web.server/cgi/skript.pl" method="post" ...>

    ... also der gewünschte Dateiname zum Downloaden wird
    in der action:-URL einfach - durch ein slash getrennt -
    hinter die Skript-URL geschrieben.

    Viele Grüße!

    Andreas Bierhals

    1. ... also der gewünschte Dateiname zum Downloaden wird
      in der action:-URL einfach - durch ein slash getrennt -
      hinter die Skript-URL geschrieben.

      Hallo Andreas

      Besten Dank für Deinen Tip, man lernt nie aus. Funktioniert ausgezeichnet, auch mit meinem kompilierten nicht Perl CGI!

      in der Zwischenzeit habe ich noch einen HTTP Header gefunden, welcher genau das gleiche provoziert: Content-Disposition: inline; filename="filename"

      Viele Grüsse
      Stephan