Il peut être plus pratique de forcer le téléchargement d’un fichier que de systématiquement le proposer en fichier .zip.
Voici deux méthodes utilisant PHP pour ce faire.
Pensez à protéger vos répertoires sensibles, par un .htaccess par exemple.
Forcer le téléchargement d’un fichier
Dans un fichier texte, saisir ceci et enregistrer le en download.php par exemple.
<?php
header(« Content-type: application/force-download »);
header(« Content-Disposition: attachment; filename=nom_fichier.extension »);
readfile(« http://www.serveur.com/dossier/nom_fichier.extension »);
?>
On fait ensuite un lien direct vers ce fichier :
<A href= »download.php »>Télécharger le fichier</A>
Forcer le téléchargement d’un fichier de manière dynamique
On définit d’abord deux variables, une variable $file qui va être le nom du fichier, une variable $chemin qui est l’url du fichier à downloader.
Dans un fichier texte saisissez ceci, et enregistré le en download.php par exemple :
<?php
header(« Content-type: application/force-download »);
header(« Content-Disposition: attachment; filename= ».$file);
readfile($chemin.$file);
?>
Dans votre page le lien va donner ceci :
<A href= »download.php?chemin=http://www.serveur.com/dossier/
&file=nom_fichier.extension »>
Télécharger le fichier</A>
download.mxp (
Attention avec cette méthode à la con car vous offrez votre site aux hackers.
La variable $chemin peut etre n’importe quoi, y compris un chemin vers /etc/passwd (fichier de mot de passe du serveur) !
Il faut toujours faire un if qui teste si l’utilisateur est autorisé à téléchargé le fichier qu’il demande !!
Le script php est executé avec les droits d’accès d’apache et non pas avec les droits d’accès du n’importe qui…
A++
Nicolas
17 sept 2009 @ 17:49