Chälli: Netscape hängt .php an bei PHP-Download

Hallo zusammen,

ich habe ein kleines Download-Script geschrieben. Der Download wird folgendermassen gestartet:
if ($HTTP_USER_AGENT, "MSIE") {
header("Content-type: application/x-msdownload");
}
else {
header("Content-type: application/octetstream");
}
header("Content-disposition: attachment; filename="$save_as_name"");
header ( "Content-Length: ".filesize($completefilepath));
readfile($completefilepath);

Nun hängt aber der Netscape immer ein .php an den Dateinamen an (z.B. test.doc.php). Natürlich kann man diesen manuell ändern, doch das möchte ich nicht jedem Benutzer zumuten.

Ich habe im Archiv gesucht und folgendes gefunden:
<zitat>
1.) Mozilla 1.0 unter Windows hat an den Dateinamen des downloads immer .php angehängt also aus setup.zip wurde setup.zip.php, erst nach der Einstellung für die Endung .php funktionierte das ganze Reibungslos, 2.) der T-Online-Browser (4.5) wollte die Datei immer unter download.php?file=xxx abspeicher, mit manuellen umbenennen ging der download dann aber reibungslos.

Obwohl beide Probleme mit wenigen Griffen lösbar wären hab ich die Lösung zunächst rausgenommen...
</zitat>

Kann mir jemand einen Tipp geben, in welche Richtung diese "wenigen Griffe" gehen?

Vielen Dank!

Gruss Chälli

  1. Hi,

    header("Content-disposition: attachment; filename="$save_as_name"");
    Nun hängt aber der Netscape

    welcher Netscape? 3, 4, 6+? Die Unterschiede sind vergleichbar mit denen zwischen IE und lynx.

    immer ein .php an den Dateinamen an (z.B. test.doc.php).

    Was erwartest Du, wenn Du einen ungültigen Dateinamen anbietest? Immerhin holt der Browser "test.doc" zwischen den Anführungszeichen hervor, ich finde das schon sehr nett von ihm. Ich an seiner Stelle würde einfach sagen, dass Anführungszeichen innerhalb eines Dateinamens nicht erlaubt sind, und den Header entsprechend ignorieren.

    <zitat>

    [...]

    Obwohl beide Probleme mit wenigen Griffen lösbar wären hab ich die Lösung zunächst rausgenommen...
    </zitat>
    Kann mir jemand einen Tipp geben, in welche Richtung diese "wenigen Griffe" gehen?

    Ja: Der Autor des von Dir zitierten Textes.

    Cheatah

    1. Hallo,

      welcher Netscape? 3, 4, 6+? Die Unterschiede sind vergleichbar mit denen zwischen IE und lynx.

      NS 7 hängt es an. NS 6 und NS 4.7 haben keine Probleme. Aber da ich annehme, dass die Entwicklung wohl eher in Richtung des NS 7 geht sollte es dort auch funktionieren.

      Was erwartest Du, wenn Du einen ungültigen Dateinamen anbietest? Immerhin holt der Browser "test.doc" zwischen den Anführungszeichen hervor, ich finde das schon sehr nett von ihm. Ich an seiner Stelle würde einfach sagen, dass Anführungszeichen innerhalb eines Dateinamens nicht erlaubt sind, und den Header entsprechend ignorieren.

      Das Problem bleibt, auch wenn ich die Anführungszeichen weglasse.

      Ja: Der Autor des von Dir zitierten Textes.

      Super! Dann hab ich ja den Experten gefunden :)

      Gruss Chälli

      1. Hi,

        NS 7 hängt es an.

        hast Du es mal mit einer neueren Mozilla-Version verglichen?

        Das Problem bleibt, auch wenn ich die Anführungszeichen weglasse.

        Macht nichts. Nur ohne Anführungszeichen kannst Du ein relevantes Verhalten erwarten; genauso darf z.B. kein Verzeichnistrenner enthalten sein. Lass also zunächst unbedingt die Anführungszeichen weg, bevor Du mit weiterer Fehlerbehandlung beginnst.

        Ja: Der Autor des von Dir zitierten Textes.
        Super! Dann hab ich ja den Experten gefunden :)

        Thorsten hat bisher noch nicht geantwortet... :-)

        Cheatah

        1. Hallo,

          hast Du es mal mit einer neueren Mozilla-Version verglichen?

          Jep, Version 1.2a macht den Fehler auch (andere hab ich nicht getestet).

          Macht nichts. Nur ohne Anführungszeichen kannst Du ein relevantes Verhalten erwarten; genauso darf z.B. kein Verzeichnistrenner enthalten sein. Lass also zunächst unbedingt die Anführungszeichen weg, bevor Du mit weiterer Fehlerbehandlung beginnst.

          jep - schon klar...

          Thorsten hat bisher noch nicht geantwortet... :-)

          :) mal schauen ob er sich auch no äussern will!

          Gruss Chälli

  2. Hallo,

    habe soeben eine Notlösung gefunden (ev. nicht nur Not-). Ich habe das Downloadscript eifach statt downloadstart.php downloadstart genannt und per .htaccess dafür gesorgt, dass es trotzdem ausgeführt wird!

    Ein weiteres Problem besteht aber weiterhin. Ich habe zwar schon mal gefragt.. aber du wirst diesem Problem bei deinem Script wohl auch begebnet sein.

    Wenn ich beim IE (und nur beim IE) einen Download starte und diesen dann abbreche kann ich nachher keinem Link mehr folgen. Ich kann auch keine URL der gleichen Domain mehr laden, ohne den IE neu zu starten.

    Hast du eine Ahnung an was das liegen könnte?

    Gruss Chälli

    1. hmmm... ist wohl nicht mein Fehler:
      Microsoft: Q266305 Canceling Multiple File Downloads on Large File Causes Internet Explorer to Stop Responding

      Da kann man wohl nichts machen... MS hats versaut..

      Gruss Chälli