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 : 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); 
?>
Code que j'enregistre dans un fichier situé au même endroit que ma page HTML, et que je nomme « Telecharger.php ».
Ensuite à partir de ma page HTML, j'appelle le code comme ceci :
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>
J'ai malgré tout un doute sur le comment définir mes variables.
« 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