IE 7 bug? - invite enregistrer / ouvrir lors du téléchargement du fichier - c# asp.net 3.5
J'ai une page aspx avec linkbuttons que le feu javascript pour ouvrir une nouvelle page aspx pour diffuser des fichiers dans le navigateur pour le téléchargement par les utilisateurs.
Lors de l'élaboration des tests unitaires et sur XP SP3, IE 7 et FireFox 3.5, en utilisant le code suivant (clé la "pièce jointe" dans le cadre du Content-Disposition de la balise), les deux invite une boîte de dialogue demandant si je veux ouvrir ou enregistrer le document, ce qui est exactement ce que je veux:
private void WriteFileToBrowser(Byte[] requestFile, string filename, String m_mimeType, String m_format)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename + "." + m_format);
Response.ContentType = m_mimeType;
Response.BinaryWrite(requestFile);
Response.Flush();
}
Pour le déploiement de la ce à un serveur Windows 2003 et accéder à la même page aspx, FireFox 3.5 correctement demande un Enregistrer/Ouvrir des option comme prévu puisque c'est le fonctionnement par défaut en FF.
Lorsque je navigue dans IE 7, cependant, et cliquez sur télécharger, j'obtiens une fenêtre pop-up qui est visible pour les 1/8e de seconde tops...et disparaît. Aucune invite à Ouvrir/Enregistrer.
Si je vais dans IE 7 -> Outils> Options Internet ->- > personnaliser le Niveau -> Téléchargements
Demander confirmation pour les téléchargements de fichiers est désactivé. Quand je vérifie qu'il activer je puis faire Enregistrer/Ouvrir l'invite de travail correctement.
Donc ma question est.....quelqu'un a eu un travail autour de cela? J'ai essayé un tas de choses que les gens demande de travail avec les différentes balises d'en-Tête comme cache, pragma, etc etc...rien de tout cela est le fait que IE a la propriété de téléchargement est désactivé par défaut.
pour les tests im en utilisant ce que mime et le format dans la liste des paramètres "application/pdf", "PDF"
Avez-vous essayer d'autres par exemple de l'application/zip quelque Chose qui IE7 ne peut pas afficher à l'intérieur de sa fenêtre.
pas encore de. J'appelle un WCF méthode pour récupérer les octets et que le système est actuellement le stockage des fichiers Pdf, et ils m'ont dit qu'ils n'ont pas d'autres types de fichiers leur logiciel peut convertir actuellement. Boiteux.
Microsoft fournit IE7, IE6 et IE8 VMs; vous pouvez voir où le changement est survenu.
OriginalL'auteur Boom Shaka Laka | 2009-08-13
Vous devez vous connecter pour publier un commentaire.
Nous avons rencontré un problème identique récemment avec notre application pour le téléchargement de rapports générés dans notre web personnalisé cadre. La recherche nous a conduit à tenter la même approche que vous avez mentionné (paramètre Content-Disposition).
Le problème est lié à la version IE7 et les zones de sécurité. Par défaut, certaines actions DOIVENT être initiées de façon explicite par l'utilisateur. Vous pourriez commencer par regarder La compréhension et le Travail en Mode Protégé d'Internet Explorer et Fenêtre À Propos De Restrictions
OriginalL'auteur Chris Cameron-Mills
Si vous souhaitez ajouter votre page pour les sites de confiance, vous seriez en mesure de télécharger le fichier.
Tout en développant l'ensemble de vos sites, vous êtes en cours d'exécution dans cette zone.
Vous pouvez essayer de forcer internet explorer en ajoutant
à la fin de votre demande.
Autre chose que vous pourriez essayer de poster le lien vers le document, de sorte que le navigateur voit la demande comme une réponse de l'interaction de l'utilisateur.
OriginalL'auteur griti
A aucun rapport avec ce problème, mais vous devez citer le nom de fichier dans votre sortie. Les espaces dans le nom du fichier à vis le nom de fichier lors du téléchargement du fichier.
OriginalL'auteur Darthg8r
Essayer Cette
protected void Button1_Click(object sender, EventArgs e)
{
Réponse.ContentType = "application/pdf";
Réponse.Clear();
Réponse.TransmitFile("test.pdf");
Réponse.Fin();
}
OriginalL'auteur
Si ce n'est pas une nécessité qu'une nouvelle page est ouverte à l'aide de javascript, vous pouvez utiliser une Réponse.Redirect() à la page aspx. Ce qui devrait ouvrir au dialogue ouvrir/enregistrer.
OriginalL'auteur Breandán