2009-05-27 5 views
0

Ich habe eine Webseite (asp.net), die ein Paket kompiliert und dann den Benutzer über Javascript (window.location = ....) zur Download-Datei weiterleitet. Dies wird von einem harten Link auf der Seite begleitet, falls die Weiterleitung nicht funktioniert - den Download-Prozess auf vielen populären Seiten zu emulieren. Wenn die IE-Informationsleiste aufgrund beschränkter Sicherheitseinstellungen oben angezeigt wird und ein Benutzer darauf klickt, um die Datei herunterzuladen, wird der Benutzer auf die Seite umgeleitet, nicht die Download-Datei, wodurch die Seite aktualisiert und die feste Verbindung entfernt wird.IE Informationsleiste, Datei herunterladen ... Wie kann ich das programmieren?

Was macht die Informationsleiste hier? Sollte es nicht den Benutzer an den Ort der Weiterleitung senden? Richte ich etwas falsch in den Headern der Download-Antwort ein oder mache ich etwas anderes falsch, um die Datei an die erste Stelle zu senden?

C# Code:

m_context.Response.Buffer = false; 
m_context.Response.ContentType = "application/zip"; 
m_context.Response.AddHeader("Content-Length", fs.Length.ToString()); 
m_context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}_{1}.zip", downloadPrefix, DateTime.Now.ToString("yyyy-MM-dd_HH-mm"))); 
//send the file 
+0

Es ist schwer, hier ohne mehr Code zu helfen ... die Umleitung JS, die Seitenmarkierung und der Rest des Codes zum Veröffentlichen der Zip-Datei wäre hilfreich. –

Antwort

0

Wenn ein Benutzer eine Datei mit der IE-Informationsleiste zum Download zustimmt, lädt IE die aktuelle Seite, die Seite nicht die Datei des Benutzer zum Download versucht. Der Unterschied besteht darin, dass der IE nach dem erneuten Laden der Seite dem Download-Skript erlaubt, ohne den Benutzer zu fragen. Ich bin mir nicht sicher, was das vom Designstandpunkt aus bedeutet, aber so scheint es zu funktionieren.

Verwandte Themen