Aide - Recherche - Membres - Calendrier
Version complète : [RESOLU] ! Balise <A> : pour experts HTML
Les Forums de PalmAttitude.org > HORS-SUJET > Divers (non PalmOS)
CyrilP
Je cherche le code HTML qui force l'ouverture d'une boite de dialogue de téléchargement pour des formats de fichiers Type MIME connu.
Dans ce cas, au lieu de présenter la boite de dialogue, il lance l'executable associé au type de fichier reconnu. Par exemple dans la séquence suivante :

<A href="video.wmv"><IMG alt="Vidéo"></A>

Il ne présentera pas, sous IE, la boite de dialogue, mais lancera Windows Media Player.

Ce sujet a déjà été abordé dans ce forum mais est resté, à l'époque sans solution.
Et sur internet, j'ai bien essayé une solution basée sur un appel à un fichier PHP qui contiendrait des header, mais cela ne marche pas. Il me propose le téléchargement du fichier PHP ...??....

Si quelqu'un a une idée ...
snark
CITATION(CyrilP @ 20/07/2006 à 12:21 ) *
Et sur internet, j'ai bien essayé une solution basée sur un appel à un fichier PHP qui contiendrait des header, mais cela ne marche pas. Il me propose le téléchargement du fichier PHP ...??....
Même si tu mets "application/octet-stream" comme MIME type dans les headers retournés par la page PHP?


Ou essaye ceci (trouvé via Google et une recherche sur "forced download").
Patrice
CITATION(snark @ 20/07/2006 à 12:33 ) *
Ou essaye ceci (trouvé via Google et une recherche sur "forced download").
Ce serait pas un peu de l'ASP, ça ? anim_wink.gif

Il me semble que c'est un inconvénient d'IE : même si le mime type ne correspond pas, il va avoir tendance à essayer une ouverture directe, d'après l'extension du fichier... Je suis curieux de savoir s'il y a une vraie solution (quand on bricole, on peut toujours virer l'extension du fichier, mais ce n'est pas optimal).
snark
CITATION(Patrice @ 20/07/2006 à 12:38 ) *
Ce serait pas un peu de l'ASP, ça ? anim_wink.gif
Heu oui, un tout petit peu... icon_bla.gif siffle.gif
Tabetozor
Pareil que snarck. Sinon, voir ici
psykokwak
Tu ne pourra pas forcer le navigateur a lancer un type de fichier avec une application specifique directement depuis le code source.
Le mieu que tu pourra faire, cest (comme indique sur le lien du msg ci dessus), modifier le header de reponse afin de dire au navigateur quel est le mime associe au contenu recu. Mais en suite, c'est le navigateur qui decide quoi en faire.

voila comment ca se passe

CODE
+----------------------------------------------------------------------------------+
|             SERVEUR                     |           CLIENT                       |
+----------------------------------------------------------------------------------+
| magic number ou extension -> type mime  | type mime -> association/traitement    |
+----------------------------------------------------------------------------------+
psykokwak
si tu souhaite forcer le telechargement d'un fichier quelque soit son extension, tu peux le faire comme ceci (en php) :
CODE
$filename = "toto.avi";
$size = filesize($filename);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$size);
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");

readfile($filename);
exit();
CyrilP
CITATION(snark @ 20/07/2006 à 12:33 ) *
Même si tu mets "application/octet-stream" comme MIME type dans les headers retournés par la page PHP?

Oui, j'ai essayé cela sans succès.

CITATION(Tabetozor @ 20/07/2006 à 12:41 ) *
Pareil que snarck. Sinon, voir ici

Je vais essayer cela sleep.gif

CITATION(psykokwak @ 20/07/2006 à 14:19 ) *
si tu souhaite forcer le telechargement d'un fichier quelque soit son extension, tu peux le faire comme ceci (en php) :
CODE
$filename = "toto.avi";
$size = filesize($filename);
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$size);
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");

readfile($filename);
exit();

Cela ressemble au lien de Tab', non ?

Au fait, j'avais oublié de préciser que je ne voulais pas zipper le document. Ca aurait été une solution qui marche mais je ne veux pas de manip (comme une décompression) après le chargement.

Je fais des essais et reviens vous dire comment ca évolue ...
psykokwak
CITATION(CyrilP @ 20/07/2006 à 15:38 ) *
Cela ressemble au lien de Tab', non ?


c'est effectivement la meme chose que le lien donne par Tab.
Jutilise se petit bout de code depuis pas mal de temps et il a largement fait ses preuves. icon_biggrin.gif
CyrilP
J'ai essayé le code du lien de Tab' et ...


dieu.gif à notre président !!!

Ca marche ! Merci à tous de votre aide !!!! anim_super.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.