Hi,
header('Content-Type: application/octet-stream');
header('Content-Disposition: filename=''. $saveName .''');
Wenn Du Textdateien anbietest, sollte der Contenttype auch dazu passen und die Dateiendung sollte auch zu einer Textdatei gehören.
es sei denn, man möchte bewusst keine Information über den Dateiinhalt geben, weil es nur ein generisches Download-Angebot ist - so verstehe ich Patricks Startposting jedenfalls.
"application/octet-stream" bedeutet jedenfalls "unspezifizierte Binärdatei". Da kann sich dann auch schon mal ein Programm dahinter verbergen.
Richtig. Oder ein Video. Oder ein PDF.
Es obliegt dem Client, ob er überhaupt eine Assoziation zu einer Anwendung ausführt. Welche soll das sein, wenn Du eine Binärdatei anbietest?
Einfach nur die Frage, wo denn bitte die heruntergeladene Datei zu speichern wäre. Allerdings ist gerade der IE dafür bekannt, dass er den Content-Type nicht so ernst nimmt und stattdessen lieber aus der Namensendung und den ersten paar Bytes der ankommenden Nutzdaten vesucht zu erraten, was hier wohl für eine Datei/Ressource vorliegt. Deswegen interpretiert er beispielsweise auch HTML, selbst wenn es "absichtlich" als text/html ausgeliefert wird, weil man es als Quellcode zeigen möchte.
Firefox 3.0 macht übrigens ähnlichen Quark. Eine Videodatei (z.B. als AVI- oder WMV-Container), die als application/octet-stream ausgeliefert wird, übergibt er trotzdem bevorzugt an die dafür zuständige Default-Anwendung, z.B. den Windows Media Player.
Ciao,
Martin
Es gibt Tage, da gelingt einem einfach alles.
Aber das ist kein Grund zur Sorge; das geht vorbei.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(