Response.AddHeader ("Content-Disposition") öffnet Datei in IE6 nicht

Ich verwende Response.AddHeader ("Content-Disposition", "attachment; filename =" + Server.HtmlEncode (FileName)); um ein Dialogfeld zum Öffnen / Speichern von Dateien für die Benutzer zu öffnen, damit diese eine Datei auf ihre lokalen Computer herunterladen können.

Dies funktioniert normal in IE7, aber in IE6 wird die Datei nicht geöffnet, wenn der Benutzer im Dialogfeld "Datei öffnen / speichern" auf die Schaltfläche "Öffnen" klickt. Ich ging durch das Netz und fand, dass Response.AddHeader ("Content-Disposition", "Inline; Dateiname =" + Server.HtmlEncode (FileName)); sollte vorgesehen sein, dass in IE6 zu arbeiten, und es funktioniert gut ..

Aber das Problem ist, dass die meisten Dateien, die im Browser geöffnet werden können, auf der Seite selbst geöffnet werden. Das heißt, der Benutzer auf einer Mail-Seite und dann auf "Bilddatei herunterladen" klicken, die dort geöffnet wird. Ich muss sie wie im Fall von in einem anderen Fenster öffnen IE7 was kann ich tun ... andere Dateien, die sich im Browser nicht öffnen lassen, öffnen sich mit der aktuellen Anwendung im System, dh (Word, Excel usw.).

Bitte schlagen Sie eine Methode vor, um für beide IEs denselben Code zu verwenden ... Der verwendete Code ist hier ....

Response.AddHeader("Content-Disposition", "attachment; filename=" +FileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = ReturnExtension(file.Extension.ToLower());
Response.TransmitFile(file.FullName);
Response.End();

 private string ReturnExtension(string fileExtension)
    {
        switch (fileExtension)
        {
            case ".txt":
                return "text/plain";
            case ".doc":
                return "application/ms-word";
            case ".xls":
                return "application/vnd.ms-excel";
            case ".gif":
                return "image/gif";
            case ".jpg":
            case "jpeg":
                return "image/jpeg";
            case ".bmp":
                return "image/bmp";
            case ".wav":
                return "audio/wav";
            case ".ppt":
                return "application/mspowerpoint";
            case ".dwg":
                return "image/vnd.dwg";
            default:
                return "application/octet-stream";
        }
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage