Le « force file to download » (entendez forcer le fichier à se télécharger) permet de forcer le navigateur à ouvrir la boîte de dialogue de téléchargement pour certains types de fichier. C’est le cas par défaut des fichiers de type archive (.zip, .rar, etc.) si je ne fais pas erreur.
Forcer le téléchargement d’un type de fichier
Il existe une instruction à placer dans le fichier .htaccess
qui permet d’indiquer au navigateur la manière dont il doit traiter certains formats de fichier lorsque le visiteur parcourt un fichier.
La ligne de code suivante permet de traiter les PDF comme étant un type de fichier à télécharger, et non à afficher dans le navigateur :
AddType application/octet-stream .pdf
À noter que le point est optionnel, et que l’extension d’un fichier n’est pas sensible à la casse : inutile donc d’ajouter l’extension en majuscule « PDF », ça ferait doublon.
Vous pouvez traiter plusieurs types de fichiers de la même manière en rajoutant simplement les extensions de chacun des fichiers les uns derrière les autres en les séparant par un espace :
AddType application/octet-stream pdf mp3 mp4 avi
Il est possible de placer un fichier .htaccess
dans un sous-dossier de votre site web pour n’impacter que les fichiers à l’intérieur de ce dosssier.
Écartons-nous un poil du sujet
Dans certains cas, le navigateur télécharge votre fichier .swf
comme s’il s’agissait d’un type application/octet-stream
. Pour résoudre ce problème, complétez votre .htaccess
de la sorte :
AddType application/x-shockwave-flash swf
Je vous invite à lire ce guide en anglais pour en apprendre davantage :
Adding MIME Types – htaccess-guide.com
C’est tout pour cette astuce.
N’hésitez pas à commenter si vous rencontrez des problèmes !
PS : astuce à venir sur le même sujet en HTML5
je tiens a vous remercie pour cette astuce , vraiment et du fond du cœur merci pour le partage
Oh… il n’y a pas de quoi 🙂
Hello !
Cet article m’a bien aidé. On sous estime toujours la puissance d’un petit fichier htaccess
Merci 🙂
Merci pour l’info!
Cependant, sur mon blog, cela ne fonctionne pas ???
Mon probleme = 1 fichier mkv en téléchargement qui se lance en lecture au lieu de se télécharger…
J’ai installé un fichier access dans le dossier ou se trouvent mes fichiers mkv
Rien a changer!!!
Si vous pouvez m’aider à comprendre??
Cela serait très sympa!
ci-dessous le texte :
AddType application/octet-stream avi mkv
Détail qui peut avoir son importance:
le blog dans lequel je souhaite installer ce fichier htaccess a été installé en partageant la même base qu’un premier blog déjà installé chez Ovh…
J’ai résolu mon problème avec:
ForceType application/octet-stream
Header set Content-Disposition attachment
Merci tout de même pour votre Blog
Hello,
Merci d’avoir partagé la solution 😉
puis je avoir plus de précision, j’ai le même probleme. Dois je mettre dans l’access :
seulement,
ForceType application/octet-stream
Header set Content-Disposition attachment
Merci à tous
merci pierre.
en effet cela a marché avec ton code.
Bonjour,
Est ce qu’on peut limiter cette manipulation sur un seul navigateur ?
J’aimerai forcer le téléchargement que sur IE.
Merci de votre aide.
Je pense que ça doit être possible, mais je ne saurais trouver la syntaxe exact.
Il est possible de rediriger une personne sur une autre URL en fonction de son navigateur : http://evansims.com/6032/using-htaccess-to-redirect-obsolete-browsers/, il faut juste trouver comment appliquer cette condition à une règle « type » (ForceType ou AddType). Hélas l’Apache n’est pas ma langue natale :p
Ça n’a pas l’air de fonctionner en localhost sur linux …
Hello,
Je ne vois a priori pas le rapport avec linux. À partir du moment où c’est un serveur Apache ça devrait fonctionner.
Bonjour Geoffrey,
Je tenais à vous remercier sur votre propre site pour votre aide précieuse concernant mes soucis avec les liens de téléchargement des petites enveloppes oranges. Mon hébergeur : Firstheberg s’est occupé de la manipulation (que j’aurais eu du mal à faire moi-même) et tout est rentré dans l’ordre.
Un ENORME merci, bien cordialement à vous,
Marion
Merci pour cette astuce ! 🙂