2010-11-19 17 views
1

Ich habe die folgende Situation (vereinfacht):Probleme mit automatischer Downloads und IE Sicherheitswarnung

ich ein Skript file.php file = foo.pdf haben, die Dateien außerhalb des Document-Root liefert (es hat keine html , es ist nur das Download-Push-Skript). Einige Dateien sind durch das Skript geschützt - in diesem Fall wird der Benutzer auf login.php umgeleitet. Bei erfolgreicher Anmeldung wird eine Sitzungsvariable mit der Datei festgelegt, die der Benutzer herunterladen möchte. Der Benutzer wird zu home.php weitergeleitet, wo ich einen iframe mit der Download-Quelldatei.php? File = foo.pdf erstelle. Wenn das Skript file.php beginnt, den Download zu pushen, löst es die Session-Variable aus.

Das funktioniert in Firefox, aber im IE gibt mir das eine Sicherheitswarnung und der Download wird blockiert. Wenn ich auf die Leiste klicke und dem Download-IE erlaube, lädt die Seite neu. Da die Sitzung jedoch bereits deaktiviert wurde, wird der Iframe nicht generiert und die Datei wird nicht "erneut" heruntergeladen.

IE scheint wirklich den ersten Download zu starten, bricht aber ab, wenn er die Header empfängt. Ich habe also keine Chance zu sagen, ob ein Download vom Browser abgebrochen wurde.

Hat jemand eine Lösung dafür? (Ich möchte keinen Download-Button).

Antwort

0

Nachdem ich damit durchgegangen bin (danke für die Antworten, aber keine von ihnen löste das Problem - IE setzt Cookies auf die Download-Anfrage, blockiert aber den Download danach), tendiere ich dazu, die einzige Methode zu behandeln Dies ist eine Download-Seite, auf der der Benutzer aktiv auf den Download-Link (oder zumindest eine Art von Download-Overlay) klicken kann.

0

Ich könnte falsch sein, aber haben Sie versucht, Sitzungsvariable nach dem Senden der Datei an Iframe zu löschen? In diesem Fall ist es möglich, dass, wenn IE Sicherheitsüberprüfung hält Download-Variable für die nächste Anfrage noch existiert

0

sind Sie "Ziel" ing ein iframe in Ihrem Download-Link?

Warum zielst du nicht = "Eltern"? Ohne HTML und einen geänderten MIME-Header (ich gehe davon aus, dass Octet Stream oder Force Downlaod) wird Ihre Seite nicht überschrieben und Ihr Download wird erfolgreich sein.