2009-10-14 6 views
2

J'utilise Silverlight et je dois permettre à l'utilisateur d'enregistrer des fichiers générés dynamiquement.IE7/8 ignorant la demande de téléchargement de fichier dans la popup

Pour les fichiers PDF, j'ai créé un gestionnaire http et cela fonctionne très bien lorsque je l'ouvre dans une fenêtre contextuelle.

Pour les fichiers Excel, j'ai essayé toutes les combinaisons de Content-type et Content-disposition mais IE8 refuse d'ouvrir le fichier. Avec Fiddler je peux voir le get et il y a un affichage très court d'une fenêtre IE mais il se ferme tout de suite.

Je ne vois aucun message d'erreur et je ne trouve aucune autre description du problème. IE7 présente le même comportement.

J'ai essayé Content-type = application/vnd.ms-Excel, application/inconnu, application/octet-stream et pour Content-disposition j'ai essayé en ligne et l'attachement. PS: Je ne peux pas utiliser la boîte de dialogue de sauvegarde intégrée de SL car elle nécessite que le contexte soit dans une action de l'utilisateur et que je génère le fichier de manière asynchrone sur le serveur.

+0

Version d'Office installée? – AnthonyWJones

+0

Excel 2003. Mais IE devrait me faire au moins un dialogue ouvert/enregistrer. – R4cOON

Répondre

0

Vous devez utiliser Content-Disposition: attachment

Avez-vous essayé sur un autre client? Ma conjecture est peut-être que le bureau essaye d'être lancé et échoue.

Alternativement, il est peut-être lié à http://blogs.msdn.com/ieinternals/archive/2009/10/02/Internet-Explorer-cannot-download-over-HTTPS-when-no-cache.aspx

+0

FF fonctionne parfaitement bien. Et comme je l'ai dit, j'ai utilisé 'Content-Disposition: attachment' (et j'ai aussi essayé' inline' pour faire bonne mesure). J'ai remarqué le 'No-Cache' parce que quand je l'ai placé le pdf ne fonctionnerait pas non plus. Je pense que mon option sera d'utiliser un 'iframe' caché. On dirait que c'est ainsi que d'autres sites professionnels déclenchent des téléchargements. – R4cOON

1

Ressemble Demander confirmation pour les téléchargements est désactivé. Voir la description this sur la façon d'activer l'invite automatique. L'activation de l'invite automatique a fonctionné pour moi (situation: l'application silverlight utilise Window.Navigate pour ouvrir une fenêtre contextuelle vers un gestionnaire générique qui génère un fichier Excel, avec content-disposition: attachment, qui fonctionne bien dans FF, mais pas dans IE8). Comme ce post est déjà assez vieux, je suis curieux de savoir si vous avez trouvé une meilleure façon de résoudre ce problème!

+0

Je ne me souviens plus de l'incantation magique qui l'a arrangée. J'ai regardé le code et je peux voir que je déclenche la popup en utilisant HtmlPage.PopupWindow (, "_blank", null); puis créez le fichier avec "Cache-Control: private", "Content-Length: ", "Content-Type: application/vnd.ms-excel", "Content-disposition: pièce jointe, nomfichier = ". Je peux voir que j'ai dû commenter le "context.Response.Cache.SetNoStore();" ligne donc je pense que cela causait le problème (ou si le commentaire dit). J'espère que vous pourrez résoudre votre problème. – R4cOON

Questions connexes