Bonjour à tous,
Je débute en HTML et je galère depuis 2 jours sur un problème.
J'ai fait une page HTML avec un lien sur un document texte.
Cette page HTML ne fait pas partie d'un site mais sera intégrée dans un fichier CHM.
Je souhaiterais que lorsque l'utilisateur clique sur le lien, il puisse enregistrer directement le fichier.
Donc ma question est :
Est-il possible de faire cela sans que ne soit une page Weeb ?
Et si oui comment faire ?
Souvent mes recherches m'ont renvoyées sur le code suivant :
Code que j'enregistre dans un fichier situé au même endroit que ma page HTML, et que je nomme « Telecharger.php ».
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?php // on essaie de reconnaitre l'extension pour que le téléchargement corresponde au type de fichier afin d'éviter les erreurs de corruptions switch(strrchr(basename($Fichier_a_telecharger), ".")) { case ".gz": $type = "application/x-gzip"; break; case ".tgz": $type = "application/x-gzip"; break; case ".zip": $type = "application/zip"; break; case ".pdf": $type = "application/pdf"; break; case ".png": $type = "image/png"; break; case ".gif": $type = "image/gif"; break; case ".jpg": $type = "image/jpeg"; break; case ".txt": $type = "text/plain"; break; case ".htm": $type = "text/html"; break; case ".html": $type = "text/html"; break; default: $type = "application/octet-stream"; break; } header("Content-disposition: attachment; filename=$Fichier_a_telecharger"); header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger)); header("Pragma: no-cache"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); header("Expires: 0"); readfile($chemin . $Fichier_a_telecharger); ?>
Ensuite à partir de ma page HTML, j'appelle le code comme ceci :
J'ai malgré tout un doute sur le comment définir mes variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <html> <head> <title>Test du téléchargement d'un fichier</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <a href="telecharger.php?Fichier_a_telecharger=MyFile.txt&chemin=DownLoad/">Télécharger</a> </body> </html>
« Fichier_a_Telecharger » est-il bien simplement le nom du fichier texte ?
« chemin » est-il le chemin d'accès au répertoire contenant le fichier texte ?
Enfin, sur les tests que j'ai effectué, le lien fonctionne mais il m'ouvre une nouvelle page avec le code php.
Merci de bien vouloir m'aider.
Cordialement
Christophe
Partager