Je développe un module personnalisé pour Drupal traitant de la gestion de documents. À ce stade, le module se charge, vous pouvez télécharger des fichiers (via un iframe caché et certaines requêtes ajax), parcourir les répertoires et définir différents niveaux d'autorisations. Et tout fonctionne parfaitement dans Firefox.Le téléchargement de fichiers iFrame avec IE produit un dialogue de téléchargement
Problème: Dans IE cependant, je rencontre un problème. Pour une raison quelconque, lorsque je télécharge un fichier, la boîte de dialogue de sauvegarde apparaît et me demande de télécharger le fichier que je viens de télécharger. On dirait qu'il me demande de le télécharger à partir de l'emplacement tmp des serveurs Web, car cela semble être le nom du fichier et autres. Toutefois, si j'appuie sur annuler et actualiser la page, je peux voir que le fichier que j'ai téléchargé a effectivement été téléchargé sur le serveur.
Voici comment le processus de téléchargement fonctionne.
- Cliquez sur le bouton de téléchargement. Le bouton de téléchargement est l'élément de formulaire d'entrée de fichier standard masqué et placé sur une version stylée du bouton. En cliquant dessus, le dialogue "Choisir un fichier" s'ouvre.
- Sélectionnez un fichier et cliquez sur "Ouvrir". Un dialogue modal apparaît vous demandant de plus amples informations sur le fichier. Le modal fait partie du même élément de formulaire mais reste invisible jusqu'à ce que vous cliquiez sur le bouton Télécharger.
- Cliquer sur Enregistrer dans le modal entraîne le téléchargement du fichier. L'attribut "action" sur le formulaire pointe vers une page et la cible est l'iframe.
- L'iFrame est interrogé quelques fois par seconde pour voir si son contenu a changé. Lorsque le fichier est téléchargé, un message "succès" apparaît dans l'iframe. Comme il appartient au même domaine, je gratte le contenu dans l'iframe.
- Une fois que le iFrame dit que le fichier a été téléchargé, j'utiliser quelques JS pour mettre à jour l'application avec le nom du fichier
Puisque je ne peux pas utiliser Firebug dans IE, je dois en tenir à en utilisant la barre d'outils Microsoft Developer, ce qui rend très difficile de savoir si l'étape en gras est réellement en cours. Cela semble être le cas, puisque le fichier est en train d'être téléchargé. Il est juste interrompu par ce dialogue de téléchargement de fichiers.
Je suis très surpris ce n'est pas un problème commun avec une bonne réponse :( –