PHP: Erzwinge Datei-Download und IE, noch einmal

8

Leute, ich weiß, es gab viele Threads über das Erzwingen des Download-Dialogs, aber keine der Lösungen funktionierte für mich noch.

Meine App sendet E-Mails an das E-Mail-Konto des Benutzers und benachrichtigt sie, dass "ein anderer Benutzer ihnen eine Nachricht gesendet hat". Diese Nachrichten enthalten möglicherweise Links zu Excel-Dateien. Wenn der Benutzer auf einen Link in seinem GMail / Yahoo Mail / Outlook zu dieser Excel-Datei klickt, möchte ich das Dialogfeld "Datei speichern" öffnen.

Problem: Wenn ich im IE mit der rechten Maustaste klicke und "Speichern unter" wähle, erhalte ich den Dialog Speichern unter. Wenn ich nur auf den Link klicke (was viele meiner Kunden tun, weil sie nicht computeraffin sind), bekomme ich eine IE-Fehlermeldung: "IE kann Datei nicht herunterladen ... von ...". Kann relevant sein: auf GMail, wo ich das teste, ist jeder Link ein "target = _blank" -Link (gezwungen von Google).

Alle anderen Browser funktionieren in allen Fällen einwandfrei.

Hier sind meine Header (durch Fiddler aufgenommen):

%Vor%

Ich möchte, dass IEs normales Linksklick-Verhalten funktioniert. Irgendwelche Ideen?

    
Alex Weinstein 20.10.2009, 22:45
quelle

4 Antworten

13

Dies wird nach Versionen von IE suchen und Header entsprechend setzen.

%Vor%     
Corey Ballou 20.10.2009, 23:41
quelle
5

Verwenden Sie einfach:

%Vor%

Das ist alles. (Facebook macht das gleiche.)

    
Buzogany Laszlo 25.03.2013 14:36
quelle
2

Wenn Sie versuchen, die Datei jedes Mal herunterzuladen, ändern Sie den Inhaltstyp in 'application / octet-stream'.

Versuchen Sie es ohne die Pragma-Anweisung.

    
txyoji 20.10.2009 23:24
quelle
0

Ihre No-Cache-Anweisungen (Vary, Expires, Pragma) verursachen das Problem.

Siehe Ссылка

    
EricLaw 25.10.2009 16:28
quelle