[FLASH 8] [AS] Problème de lien sous IE
Bonjour!
Voilà mon problème. J'ai une petite animation tout simple, avec un lien vers un PDF.
Sous Firefox, lors d'un clic sur ce lien, le fichier PDF s'ouvre dans un nouvel onglet FF (objet application/pdf).
Sous IE par contre, il bloque cette nouvelle fenêtre qu'il considère comme popup.
Ma question: comment faire pour forcer l'utilisateur à télécharger le PDF (et non plus l'ouvrir dans le navigateur)??
[Download en Flash/Flex] problème de cache avec IE
Bonjour,
Voila le contexte :
Je développe une application en Flex, et une action de l'application génère un fichier texte du coté serveur (Java, avec Tomcat). Je souhaiterais une fois cette action terminé, autrement dit une fois que le fichier coté serveur est généré, le télécharger.
Pour cela, lorsque le fichier est généré le serveur prévient le client grâce à un message (avec le service messaging de FDS). Le client sait alors qu'il doit télécharger le fichier, disponible à telle URL. Pour le téléchargement j'utilise l'objet FileReference.
Le problème : Tout cela fonctionne très bien sous Firefox, mais pas sous IE !
Si je génère un fichier "toto" disponible à une URL donnée, et que par la suite je change le contenu du fichier "toto", alors, à cause du cache de IE, lorsque je téléchargerais le fichier j'aurais le contenu de l'ancienne version du fichier.
Les solutions :
Pour le moment j'ai une solution temporaire ou je génère un nom de fichier différents à chaque fois, ainsi il n'y a pas encore de cache, mais cette solution ne tient pas la route (je ne rentrerais pas plus dans les détails).
Une autre solution radicale : changer l'option de IE et lui interdire de mettre en cache. Cette solution ne me convient pas non plus car l'utilisateur ne devrait pas avoir à changer les options de son navigateur.
LA SOLUTION : ajouter des options dans le header de la requête HTTP pour lui spécifier de ne pas mettre en cache. Seulement je n'y arrive pas, voici le code qui, en théorie, devrait fonctionner :
<code>
var header1:URLRequestHeader = new URLRequestHeader("CacheControl", "no-cache");
var header2:URLRequestHeader = new URLRequestHeader("Pragma", "no-cache");
var header3:URLRequestHeader = new URLRequestHeader("Expires", "-1");
request = new URLRequest(url); // url est l'adresse complète du fichier
request.requestHeaders.push(header1);
request.requestHeaders.push(header2);
request.requestHeaders.push(header3);
file = new FileReference();
file.download(request);
</code>
Seulement, lorsque j'analyse les paquets HTTP je ne vois pas mes headers ajoutés...
Quelqu'un a t-il déja eut se genre de problèmes ? Je suis ouvert à tout type de solutions :)
Merci beaucoup pour votre aide
[résolu] Flex download & pb de cache avec IE
La réponse est simple : il faut mettre les options de cache dans la réponse de la requête... J'ai donc fait une servlet et cela foncitonne bien.
:)