Bonjour tout le monde,
Voila, j'ai un petit soucis, je suis en train de créé une application web avec laquelle à un moment donné le client connecté aura la possibilité de télécharger un fichier. Donc j'ai créé un lien sur lequel il peut cliquer mais le problème c'estr qu'au lieu de télécharger le fichier en question, il me télécharge le source du lien. ???????????
Quand je teste en local, il me télécharge le bon fichier mais quand je le teste via une autre machine ca ne marche pas
Voici le code source du lien
<html>
<head>
<title>Forcer le téléchargement d'un fichier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
// Test du téléchargement d'un fichier avec reconnaissance du type de fichier
echo "<a href=\"telecharger.php?Fichier_a_telecharger=donnees6.txt&chemin=./ \">Télécharger</a>";
?>
</body>
</html>
Voici le code source telecharger.php
<?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($_GET['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=".$_GET['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($_GET['chemin'] . $_GET['Fichier_a_telecharger']));
header("Pragma: no-cache" );
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public" );
header("Expires: 0" );
readfile($_GET['chemin'].$_GET['Fichier_a_telecharger']);
?>