Comment faire un force-download ?

cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 - 4 mars 2007 à 12:17
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 - 7 mars 2007 à 19:15
J'aimerai que lorsque l'on clique sur un lien pointant vers un fichier compatible avec le navigateur (un fichier html par exemple), la boite de dialogue de téléchargement s'ouvre au lieu d'afficher le fichier.

Est-il possible de faire un force-download en javascript ?

Merci.

10 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 mars 2007 à 10:45
amical Bonjour à toi aussi,

    pas sûr de comprendre ce qu'est un "force-download", mais
    si j'interprête correctement, coté langage serveur ( asp,php,ror... )
    ça ne devrait poser que peu de problèmes.

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
0
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 10
5 mars 2007 à 12:40
Bonjour,

Faire un force-download correspond à changer le type mime du fichier pour obliger le navigateur à le télécharger.
C'est pour ça que j'aimerai savoir s'il existe une façon de faire un force-download (ou un équivalent) en Javascript (uniquement en javascript, pas en php ou autre).
Merci.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
5 mars 2007 à 13:52
    à mon humble avis, ça va pas être simple.
    peut-être me trompe-je ?
<hr />


Cordialement                Bul         [mon Site]     [M'écrire]           




<hr />
0
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 10
5 mars 2007 à 13:55
A mon avis non malheureument...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
7 mars 2007 à 09:40
Bonjour




Je ne me vois pas très bien arriver sur un site et constater qu'un fichier a été téléchargé sans me demander mon avis, et avec un type MIME modifié !!! Ceci dit, sans technologie serveur, je doute que ce soit réalisable. Pour l'info, quand même, je suis tombé sur une source interressante à plus d'un titre (mais en ASP) : http://www.aspfr.com/code.aspx?ID=27799

Cordialement
Roro webDev
0
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 10
7 mars 2007 à 11:52
Bonjour,
Désolé mais vous n'avez rien compris.
Ma question était comment télécharger une page html (par exemple) en cliquant sur un lien, car en temps normal le navigateur n'ouvre pas sa boite de dialogue de téléchargement mais ouvre la page.

"a été téléchargé sans me demander mon avis"
>Tout les sites téléchargent des fichiers sur votre disque dur, dans un cache.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
7 mars 2007 à 12:59
>>comment télécharger une page html (par exemple) en cliquant sur un lien

je pense avoir compris, et je pense ( je m'avance pour lui ! ) que roro a compris lui aussi.
je me cite :

à mon humble avis, ça va pas être simple si "pas fait du coté serveur"
si tu as une solution, j'espère que tu nous la donneras...



<hr />



Cordialement                Bul             [mon Site]         [M'écrire]           




<hr />
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
7 mars 2007 à 16:34
Bonjour




Oui, oui, j'avais très bien compris.
Une petite précision : aucun site ne télécharge de fichiers sur mon disque dur : C'est mon navigateur qui les récupère et les mets en cache (et encore, si je l'y autorise, ce qui n'est pas le cas, d'ailleurs). L'utilisation du cache du navigateur ne peut pas être assimilé a du "force-download".

"Uniquement en javascript", je ne pense pas que ce soit possible, javascript n'ayant pas accés au disque dur, justement (je ne parle pas de Jscript, ici, qui lui permet beaucoup plus de choses, mais "IE only" !). Une piste : l'utilisation de Jscript pour IE, puis XUL pour FF, puis ... pour les autres navigateurs.

Comme dit Bul, si tu as la solution, donne-la nous (STP, bien sûr). Je pense que ça interesserait aussi beaucoup les "traqueurs de failles"

Cordialement
Roro webDev
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
7 mars 2007 à 16:47
>>

j'avais très bien compris.
    nul n'en doutait roro, ma phrase était du second degré bien entendu.

>>



Jscript...
    oui, il va falloir se connecter sur le site, récupérer le fichier,
        le télécharger, l'écrire en local. pas trop compliqué avec
        sockets par exemple.

>>Xul et XPCom
        aussi possible, mais je suis incompétent là
       ( enfin 


plus exactement :


là aussi  )

    j'éviterais et pas seulement parce qu'exclusif IE et/ou FF.

    beaucoup plus simple, et ça marchera "avec tout", soit de mettre
        un autre suffixe, soit de le faire coté serveur.





<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
0
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 10
7 mars 2007 à 19:15
Pour l'instant je n'ai rien trouvé.

'javascript n'ayant pas accés au disque dur' ==> Le problème n'est pas ici, il ne faut pas que ce soit le script qui écrive le fichier sur le disque, mais simplement que le navigateur considère le fichier comme incompatible pour lui et donc qu'il affiche sa fenêtre de téléchargement au lieu d'afficher le contenu du fichier. C'est tout à fait faisable en php ou asp ou autres (en utilisant le type mime force-download) mais cela risque d'être impossible en javascript.

A bientot.
0
Rejoignez-nous