Cet article va vous expliquer comment forcer le téléchargement de fichiers quels que soient leurs types. (testé sur Apache 2)
Lorsque l'on souhaite proposer les fichiers dans un dossier d'un serveur Web, il n'est pas rare que ce soit le navigateur qui l'ouvre directement (Fichiers images, pdf, etc.), alors que l'on souhaite que le navigateur propose le téléchargement du fichier. Il y a plusieurs méthodes pour forcer le téléchargement de fichiers.
Une des premières facons , est de créer un script CGI (quelque soit le language à condition que votre hébergeur le supporte) qui écrit les entêtes HTTP adéquats pour forcer le téléchargement d'un fichier par le navigateur. On utilise habituellement l'entête HTTP suivant :
Content-Type: application/x-download
Plusieurs Entêtes doivent être précisés pour mener à bien l'opération :
Content-Type:application/x-download Content-Length:<Taille en octets du fichier> Content-Disposition:attachment;filename=<nom du fichier>
Les avantages de la méthode
Les inconvénients de la méthode
Comment forcer le téléchargement de fichiers, 2ème solution
Dans la page précédente, nous avons vu comment on pouvait forcer le téléchargement d'un fichier par l'intermédiaire d'un script CGI. Nous allons maintenant voir comment se passer d'un CGI , et utiliser les directives d'apache pour forcer le téléchargement de fichiers
Il suffit tout simplement de créer un fichier .htaccess dans le répertoire de téléchargement, de la forme suivante
<FilesMatch "\.(.*)"> ForceType application/x-download </FilesMatch>
Cette configuration indique à Apache que tous les fichiers nommés *.* devront avoir le type application/x-download, et de ce fait tous feront apparaître une fenêtre de téléchargement sur le navigateur du visiteur. Avantages de la méthode
Inconvénients de la solution
Je conseille donc cette méthode pour forcer le téléchargement.
Pages relatives