Thomas Haeberli: HTTP und IE ? Fehler in der Interpretation bei HTTP beim IE 5 ?

Hallo zusammen

Habe hier ein schönes PHP3 downloadfile script gebastelt :

$basepath="/somewhere/on/my/web/server/";
$fp = fopen($basepath.$file , "r");
header("Content-location: ".$file);
header("Content-disposition: attachment; filename=".$file);
header("Content-type: application/octet-stream");
fpassthru($fp);

Jetzt beim Netscape funtzt das prächtig, der macht ein
Schönes Save as... Dialogchen auf mit dem richtigen
Dateinamen im Filename feld.

Wenn ich jetzt das gleiche mit dem IE5 mache
kommt in der ersten Dialog box (FileDownload)
das ich file xy runterladen möchte mit dem üblichen
save oder run.
Jetzt egal was ich wähle kommt bei mir danach
immer der scriptfile namen in der Filename feld.

Das ist sehr nervend, da es teilweise längere Dateinamen
sind die so nicht verarbeitet werden.

Wie muss ich den IE überzeugen das er den filenamen xy
nehmen soll ? Oder geht das mal wieder ned, weil der IE
nicht gerne HTTP Befehle ausführt ?

so long
Thomas

  1. Hallo zusammen

    Habe hier ein schönes PHP3 downloadfile script gebastelt :

    $basepath="/somewhere/on/my/web/server/";
    $fp = fopen($basepath.$file , "r");
    header("Content-location: ".$file);
    header("Content-disposition: attachment; filename=".$file);
    header("Content-type: application/octet-stream");
    fpassthru($fp);

    Ich mache das so (allerdings in Perl):

    print 'Content-type: application/x-ooo; name="'.$Filename.'"', "\n";
    print 'Content-disposition: inline; filename="'.$Filename.'"', "\n";
    print 'Content-length: '.-s ($Upload_Dir.$ServerFilename), "\n\n";

    Klappt prima. Vielleicht mußt du einfach bei Content-type auch ein >; name="'$Filename'"< setzen. Wäre bestimmt einen Versuch wert.

    1. Hi

      print 'Content-type: application/x-ooo; name="'.$Filename.'"', "\n";
      print 'Content-disposition: inline; filename="'.$Filename.'"', "\n";
      print 'Content-length: '.-s ($Upload_Dir.$ServerFilename), "\n\n";

      nope

      immer noch das gleiche ....
      gibt immer noch das php3 script als filenamen an :(

      so long
      Thomas

      1. Hi

        print 'Content-type: application/x-ooo; name="'.$Filename.'"', "\n";
        print 'Content-disposition: inline; filename="'.$Filename.'"', "\n";
        print 'Content-length: '.-s ($Upload_Dir.$ServerFilename), "\n\n";

        nope

        immer noch das gleiche ....
        gibt immer noch das php3 script als filenamen an :(

        Das wundert mich jetzt aber doch, da der Browser ja wohl kaum zwischen Perl und PHP unterscheidet, und das Skript bei mir (im IE) den Dateinamen liefert.
        Wenn du es gar nicht anders hinkriegst, dann lies mal hier:
        http://www.teamone.de/selfhtml/sfausles/tsfa_tem.htm#a1

        1. Das wundert mich jetzt aber doch, da der Browser ja wohl kaum zwischen Perl und PHP unterscheidet, und das Skript bei mir (im IE) den Dateinamen liefert.
          Wenn du es gar nicht anders hinkriegst, dann lies mal hier:
          http://www.teamone.de/selfhtml/sfausles/tsfa_tem.htm#a1

          Das geht bei Downloads über Perl aber ned über php3, da ich immer
          ein argument mitgeb.

          naja, habs jetzt so gelöst in dem ich diese Funktion aus den zwei
          Webprojects rausgeworfen hab, bis ich ne lösung gefunden habe ^_^

          so long
          Thomas