Hallo
Hi,
ich erzeuge bei mir einen Download und zwar so:
$file="file.txt";
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=file.txt");
readfile($file);Bei Servicepack 2 sagt mein Rechner aber: Download geblockt...
Ich vermute, Folgendes trifft zu:
<zitat quelle="c't, 22-2004 Seite 218">
Der Internet Explorer blockiert den Download von Dateien, die der Benutzer
nicht explizit angefordert hat, sondern der zum Beispiel durch die HTML-
Anweisung META REFRESH von einer Webseite initiiert wird.
</zitat>
Deine Datei wird ja nicht direkt zum Download verlinkt, sondern es wird ein
Skript aufgerufen, dass die "file.txt" per Header ausliefert. Somit greift
der Schutz des SP 2, da es sich auch um Schadcode handeln könnte.
Wie kriege ich das denn nun weg?
<zitat quelle="c't, 22-2004 Seite 219">
[... Beschreibung der Möglichkeit, die Adresse der Datei zu ermitteln, falls
sie im Link als Parameter angehängt ist [1] ...] Leider lässt sich nicht immer die
Adresse der Datei ... ermitteln ... . Dann kann der Benutzer durch einen Klick
auf die Warnung unter der Adresszeile dem Internet Explorer den Download erlauben.
</zitat>
Ob es in dem Zusammenhang so schick aussieht, dem verschreckten Benutzer auf
der Website einen Beruhigungstext zu präsentieren, ist eine andere Frage.
[1] Kommt auf die Art der Übergabe an.
- http://www.example.com/index.html?file=http://www.example.com/downloads/file.txt
Hier lässt sich der "Standort" der Datei rekonstruieren. - http://www.example.com/index.html?file=219
Weiterverarbeitung durch Skript -> Warnung ignorieren oder Datei nicht downloaden
Tschö, Auge
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)