Le code suivant ne fonctionnera pas correctement dans IE7 avec les derniers Service Packs installés.Le dialogue de téléchargement de fichiers IE7 disparaît
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", "attachment;filename=Contacts.xls");
response.ContentType = "application/octet-stream";
System.Text.UnicodeEncoding Encoding = new System.Text.UnicodeEncoding();
byte[] unicodeBytes = {255,254};
int length = 2 + Encoding.GetByteCount(_exportContent); // _exportContent is string.
response.AddHeader("Content-Length", length.ToString());
response.OutputStream.Write(unicodeBytes, 0, 2);
unicodeBytes = Encoding.GetBytes(_exportContent);
response.OutputStream.Write(unicodeBytes, 2, unicodeBytes.Length);
response.End();
J'ouvre la page ASPX avec js (window.open()) et exécuter le code ci-dessus dans le Page_Load(). La chose étrange est que la fenêtre s'ouvre, tente de charger/afficher la boîte de dialogue de fichier et ensuite vous entendez le son comme une fenêtre popup a été bloquée (bien que le bloqueur de popups soit désactivé!).
Informations supplémentaires:
- Le comportement se produit aussi bien sur XP et W2k3 (ce qui est un vrai serveur web sans rien d'autre installé, mais IE7 & FW 3.5 SP1 & derniers Service Packs.) - Le même code fonctionne très bien avec FW 2.0 - Firefox n'a aucun problème pour afficher une boîte de dialogue de fichier.
Je serais curieux de savoir si quelqu'un d'autre a rencontré le même problème et pourrait fournir une solution pour faire fonctionner la chose dans IE7.
Cheers,
Dimi
Problème résolu en ajustant les paramètres dans l'IE pour gérer les fenêtres contextuelles d'un hôte spécifique. Merci pour l'entrée de toute façon –