Mettre un fichier en download

Mettre un fichier en download - HTML/CSS - Programmation

Marsh Posté le 23-06-2006 à 10:42:24    

Bonjour,
 
Certains d'entre vous vont surement trouver ma question con mais tant pis pour eux.
 
Si je veux mettre un fichier en téléchargement depuis une pages html, je fais une balise <a href="monfichier" target="_blank">mon  fichier </a>
 
Jusque là pas de soucis, le fichier s'ouvre dans une nouvelle page.
 
QUESTION:
 
Si le fichier est un .doc ou .pdf par exemple, ce dernier s'ouvre dans une fenêtre alors que je voudrais simplement proposer à l'utilisateur de le downloader sur son disque afin qu'il ne l'ouvre que s'il a envie... Je ne sais pas si je suis clair.
 
En gros, au lieu que le fichier s'ouvre dans une nouvelle fenêtre, je voudrais que l'utilisateur aient à l'écran une fenêtre qui lui propose les 3 actions "ouvrir, enregistreer-sous, annuler". Et là faute d'imagination, je bloque!  :cry:  
 
C'est bête mais je suis sûr que la réponse est tout simple.
Eclairez-moi!

Reply

Marsh Posté le 23-06-2006 à 10:42:24   

Reply

Marsh Posté le 23-06-2006 à 10:53:17    

Je ne crois pas que tu puisse contrôler ça.
 
C'est le navigateur qui détermine ce qu'il fait des fichiers reçus

Reply

Marsh Posté le 23-06-2006 à 10:57:31    

Tu ne peux pa scontrôler cela et pour éviter les problèmes, zippe tes documents et fais télécharger les zips comme ca la tu auras une boite de dialogue qui demandera à l'utilisateur s'il veut dézipper directement ou enregistrer sur son pc.

Reply

Marsh Posté le 23-06-2006 à 11:00:13    

normalement il faut faire :
<a href="fichier" type="application/octet-stream">Télécharger le fichier</a>
 
Mais IE ne gere pas ou pas correctement l'attribut type.
 
Une solution Compatible avec tous les navigateurs serait de concevoir le script PHP qui envoie le bon en-tete (application/octet-stream) au navigateur client suivi des données du fichier. Ca se fait en 2/3 lignes :
header(on définit le type application/octet-stream des données qu'on va envoyer);
readfile(le fichier);
biensur il y a des controles a effectuer que tu devras rajouter. Tu as deja un début de recherche.

Reply

Marsh Posté le 23-06-2006 à 11:01:15    

Zip le fichier, c'est une solution toute bête mais ça marche ^^

Reply

Marsh Posté le 23-06-2006 à 11:13:19    

De la meme maniere, suivant la configuration du poste client, le navigateur peut tres bien lancer l'utilitaire de décompression ZIP installé sur le système plutot que de lancer le téléchargement.

Reply

Marsh Posté le 23-06-2006 à 11:18:28    

Sinon j'ai trouvé une réponse bête et méchante, indiquer à l'utilisateur qu'il faut faire un "clic droit" puis "Enregistrer la cible sous...".

Reply

Marsh Posté le 23-06-2006 à 11:35:43    

Precise tout de meme le type dans ta balise <a> !
Il n'y aura "que" les utilisateurs d'IE qui seront "embetes".

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed