Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1401 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Forcer le download d'un lien

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Forcer le download d'un lien

n°1202917
joey_joe
Posté le 20-09-2005 à 09:02:10  profilanswer
 

        Bonjour à tous,
 
Dans une page HTML, j'ai un lien vers un fichier csv.
 
Selon les navigateurs, lors du clic sur ce lien, le fichier s'ouvre directement dans la page (IE reconnait le format Excel) ou lance une fenetre 'enregistrement sous'.
 
Je souhaiterai en fait, forcer ma page à vouloir télécharger ce fichier et non à l'ouvrir.
 
Comment puis-je procéder sans utiliser l'option '<a target="_blank">'.
 
                       Joey.

mood
Publicité
Posté le 20-09-2005 à 09:02:10  profilanswer
 

n°1203004
joey_joe
Posté le 20-09-2005 à 10:20:27  profilanswer
 

Personne n'est apte à m'aider ???

n°1203013
joey_joe
Posté le 20-09-2005 à 10:27:04  profilanswer
 

J'ai trouvé des solutions, mais le problème, c'est qu'il s'agit que de solutions en PHP :
 
function ForceFileDownload($file){
    $filesize = @filesize($file);
    header("Content-Disposition: attachment; filename=".$file);
    header("Content-Type: application/octet-stream" );
    header("Content-Type: application/force-download" );
    header("Content-Type: application/download" );
    header("Content-Transfer-Encoding: binary" );
    header("Pragma:no-cache" );
    header("Expires:0" );
    @set_time_limit(600);
    readfile($file);
}
 
Et je ne souhaite pas utiliser de PHP.
 
Une solution en javascript me convient par contre.

n°1203020
Bidem
Posté le 20-09-2005 à 10:32:26  profilanswer
 

Tu sera bien obligé d'utiliser PHP (ou tout autre techno côté serveur) car c'est le serveur qui définit les headers et le navigateur client ne réagit que suivant les headers.
 

n°1203021
masklinn
í dag viðrar vel til loftárása
Posté le 20-09-2005 à 10:35:50  profilanswer
 

Bidem a écrit :

Tu sera bien obligé d'utiliser PHP (ou tout autre techno côté serveur) car c'est le serveur qui définit les headers et le navigateur client ne réagit que suivant les headers.


Il peut aussi associer un MIME octet-stream à certains fichiers (genre *.csv) dans son httpd.conf :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1203031
joey_joe
Posté le 20-09-2005 à 10:44:20  profilanswer
 

Ah, tu m'interresse.
 
Peux tu m'en dire un peux plus ?
 
J'vois dans le fichier http.conf qu'il y a :
 
#
# DefaultType is the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
DefaultType text/plain
 
Faut-il que je modifie quelque chose ici ?

n°1203033
masklinn
í dag viðrar vel til loftárása
Posté le 20-09-2005 à 10:49:46  profilanswer
 

Plus bas tu trouveras normalement quelques directives commençant par "AddType" (si tu les trouve pas, il y a sûrement un placeholder).
 
Là, tu ajoutes un truc du style

AddType application/octet-stream .csv


et Apache enverra tous les fichiers ".csv" avec un header "application/octet-stream" automatiquement.
 
Ce que tu as cité, c'est la définition du type MIME par défaut (quand le type de fichier ne figure pas dans les types connus par Apache)


Message édité par masklinn le 20-09-2005 à 10:50:41

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1203041
joey_joe
Posté le 20-09-2005 à 10:54:46  profilanswer
 

Quand tu dis :
"Apache enverra tous les fichiers ".csv" avec un header "application/octet-stream" automatiquement"
 
C'est à dire, qu'il ne tentera pas d'ouvrir mon fichier dans la page actuel mais bien forcer l'option 'enregistrer sous' ???
 
Désolé d'être redonnant, c'ets pour être sur.

n°1203053
gatsusat
Posté le 20-09-2005 à 11:00:48  profilanswer
 

http://cyber.law.harvard.edu/blogs/static/dowbrigade/oui.jpg


Message édité par gatsusat le 20-09-2005 à 11:01:48
n°1203056
joey_joe
Posté le 20-09-2005 à 11:01:23  profilanswer
 

Bon ben désolé de te dire que ca ne fonctionne pas...
 
Il m'affiche tout de même mon fichier à l'écran...

mood
Publicité
Posté le 20-09-2005 à 11:01:23  profilanswer
 

n°1203065
masklinn
í dag viðrar vel til loftárása
Posté le 20-09-2005 à 11:07:22  profilanswer
 

T'as pensé à relancer apache? [:kiki]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1203108
joey_joe
Posté le 20-09-2005 à 11:29:10  profilanswer
 

Nan nan, bien sur que oui...

n°1203159
joey_joe
Posté le 20-09-2005 à 11:52:37  profilanswer
 

Alors tu ne vois pas d'autres soluces ?

n°1203489
joey_joe
Posté le 20-09-2005 à 15:26:23  profilanswer
 

On sait faire des choses de dingue en programmation et le simple fait de vouloir ouvrir un fichier en mode 'enregistrer sous' sans utiliser le php nous procure autant de problème ???
 
                                 VIVE L'INFORMATIQUE ! ! !

n°1203520
omega2
Posté le 20-09-2005 à 15:48:08  profilanswer
 

C'est pas par ce qu'on est des programmeur plus ou moins bon (et trés bon pour certain) qu'on est capable de modifier le navigateur du client sans son consentement.
Il y a des limites à tout et là les limites, c'est le comportement du navigateur et IE à la facheuse habitude de chercher à analyser ce qu'on lui envoie sans faire confiance à 100% à ce qu'on lui dit et pire, il réagit pas toujours pareil en fonction des sous versions.
 
PS : Si ca marche pas, pleins toi à microsoft. ;)


Message édité par omega2 le 20-09-2005 à 15:48:59
n°1203531
masklinn
í dag viðrar vel til loftárása
Posté le 20-09-2005 à 15:52:36  profilanswer
 

joey_joe a écrit :

On sait faire des choses de dingue en programmation et le simple fait de vouloir ouvrir un fichier en mode 'enregistrer sous' sans utiliser le php nous procure autant de problème ???
 
                                 VIVE L'INFORMATIQUE ! ! !


T'as essayé avec Opera ou Firefox [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1203599
afbilou
pouet your life
Posté le 20-09-2005 à 16:47:22  profilanswer
 

La méthode a utiliser est celle la : <a href="tonfichier_a_telecharger" type="octet-stream">Telecharger</a>
 
Cependant IE ne tient pas compte du type specifié par le developpeur ... la seule solution c'est donc d'utiliser un script serveur qui envoie l'en-tete content-type qui va bien (octet-stream) au navigateur.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Forcer le download d'un lien

 

Sujets relatifs
[C] allegro et édition de lienVariable dans sql? lien dynamiques?
lien sur un bouton : du html tout simple...Lien vers un fichier
Un lien pour deux urlRemplcer un lien texte par une image
blabla@webForcer l'affichage durant un chargement de page php!
Balise HREF : download d'un fichier HTMLforcer un casting ? [résolu]
Plus de sujets relatifs à : Forcer le download d'un lien


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR