Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > Dynamique
Dynamique Flash Media Server / Flash Remoting
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2006, 09h38   #1
BnA
Membre éclairé
 
Avatar de BnA
 
Inscription : mars 2006
Messages : 559
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2006
Messages : 559
Points : 380
Points : 380
Envoyer un message via MSN à BnA
Par défaut [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)??
BnA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 10h03   #2
En attente de confirmation mail
 
Inscription : décembre 2006
Messages : 1
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : décembre 2006
Messages : 1
Points : 1
Points : 1
Envoyer un message via Skype™ à docidoc
salut

met ton pdf en zip et tu auras automatiquement une invite a telecharger le fichier
a+
docidoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 10h18   #3
BnA
Membre éclairé
 
Avatar de BnA
 
Inscription : mars 2006
Messages : 559
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2006
Messages : 559
Points : 380
Points : 380
Envoyer un message via MSN à BnA
C'est une solution en effet, mais je ne peux pas mettre le PDF en Zip.

C'est une question d'image pour la société pour laquelle je bosse, ce n'est pas très pratique de le zipper, et tout le monde (le très grand public) ne sait pas spécialement comment ouvrir ce genre de fichier...

Et mon patron vient de me dire: "Non, pas de zip!"... Donc...

Mais merci quand même!

Une autre solution?
BnA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 10h31   #4
Membre expérimenté
 
Inscription : octobre 2006
Messages : 642
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 642
Points : 599
Points : 599
Non ce script le fait très bien:

mets ca sur ton lien pour lancer le téléchargement:

Citation:
<a href="send.php">letextedetonlien</a>
et voici le fichier send.php:

Citation:
<?php
header("Content-disposition: attachment;filename=lenomdetonfichier.pdf");
header("Content-Type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");
$fichier=fopen("lendroitoutonfichiersetrouve.pdf","r");
while(!feof($fichier))
{
print(fgetc($fichier));
}
fclose($fichier);
?>
P.s. en gras les choses à modifier.

Exemple sur www.aliose.ch sous la section me lire -> mon travail de maturité -> télécharger le
melonmaudic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 10h34   #5
BnA
Membre éclairé
 
Avatar de BnA
 
Inscription : mars 2006
Messages : 559
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2006
Messages : 559
Points : 380
Points : 380
Envoyer un message via MSN à BnA


Euh c'est en Flash en fait... Donc ce script il fonctionnera aussi?

C'est une animation Flash, le lien vers le fichier c'est simplement un getURL()...

Parce que là je vois pas où je peux mettre ce script!
BnA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 10h45   #6
Membre expérimenté
 
Inscription : octobre 2006
Messages : 642
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 642
Points : 599
Points : 599
Lol, moi aussi c'est du flash. Mon <a href="send.php">letextedetonlien</a> est utilisé par du texte html.

Si tu veux le mettre sur un bouton, un getURL est tu fais appel à une méthode javascript qui lance ton send.

En faite, plus simple tu n'as qu'à lancer ton script php une fois ton bouton cliqué.
melonmaudic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 11h02   #7
BnA
Membre éclairé
 
Avatar de BnA
 
Inscription : mars 2006
Messages : 559
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2006
Messages : 559
Points : 380
Points : 380
Envoyer un message via MSN à BnA
Désolé mais cette solution ne me satisfait pas.

C'est un site pro sur lequel je bosse, et je peux pas modifier les fichiers comme je veux...

Par contre, en surfant sur ce forum, j'ai trouvé ceci:

méthode FileReference.download

http://www.developpez.net/forums/sho...d.php?t=231553

En recherchant dans l'aide de Flash, j'ai trouvé ceci:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import flash.net.FileReference;
 
var listener:Object = new Object();
 
listener.onSelect = function(file:FileReference):Void {
    trace("onSelect: " + file.name);
}
 
listener.onCancel = function(file:FileReference):Void {
    trace("onCancel");
}
 
listener.onOpen = function(file:FileReference):Void {
    trace("onOpen: " + file.name);
}
 
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
    trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
}
 
listener.onComplete = function(file:FileReference):Void {
    trace("onComplete: " + file.name);
}
 
listener.onIOError = function(file:FileReference):Void {
    trace("onIOError: " + file.name);
}
 
var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
var url:String = "http://www.macromedia.com/platform/whitepapers/platform_overview.pdf";
if(!fileRef.download(url, "FlashPlatform.pdf")) {
    trace("dialog box failed to open.");
}
Mais ce code, où dois-je le mettre? Sur mon bouton?
BnA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2006, 11h36   #8
BnA
Membre éclairé
 
Avatar de BnA
 
Inscription : mars 2006
Messages : 559
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2006
Messages : 559
Points : 380
Points : 380
Envoyer un message via MSN à BnA
OK c'est bon ça marche nickel...

Pour ceux que ça intéresserait, il suffit de mettre ce code (celui du post précédent) dans un
Code :
btn_votreBouton.onPress=function(){
Sans oublier bien sûr de pointer vers votre fichier!

BnA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2006, 06h41   #9
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 103
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 103
Points : 32
Points : 32
J'ai testé, je suis newbie

Peux tu me dire pourquoi, l'option de téléchargement se fait dès que j'entre sur la page et non sur le onPress du bouton?
jfrsm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2007, 19h16   #10
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 4
Points : 4
Par défaut [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
epithor42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 11h30   #11
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 4
Points : 4
Par défaut [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.
epithor42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h43.


 
 
 
 
Partenaires

Hébergement Web