Forcer téléchargement d'un fichier [PHP]

adnbenji -  
 adnbenji -
Bonjour,
j'aimerais faire que lorsque je clique sur le lien de mon site "télécharger", n'ouvre pas le fichier (prenons par exemple: fichier.txt) mais le télécharge sur le PC...
comment faire?
si vous me passez des scripts SVP, dites moi où le mettre sur quelle page?
merci de votre aide.

A voir également:

2 réponses

ktm620enduro Messages postés 377 Statut Membre 38
 
$filename = 'dummy.zip';
            $filename = realpath($filename);

            $file_extension = strtolower(substr(strrchr($filename,"."),1));

            switch ($file_extension) {
                case "pdf": $ctype="application/pdf"; break;
                case "exe": $ctype="application/octet-stream"; break;
                case "zip": $ctype="application/zip"; break;
                case "doc": $ctype="application/msword"; break;
                case "xls": $ctype="application/vnd.ms-excel"; break;
                case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
                case "gif": $ctype="image/gif"; break;
                case "png": $ctype="image/png"; break;
                case "jpe": case "jpeg":
                case "jpg": $ctype="image/jpg"; break;
                default: $ctype="application/force-download";
            }

            if (!file_exists($filename)) {
                die("NO FILE HERE");
            }

            header("Pragma: public");
            header("Expires: 0");
            header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
            header("Cache-Control: private",false);
            header("Content-Type: $ctype");
            header("Content-Disposition: attachment; filename=\"".basename($filename)."\";");
            header("Content-Transfer-Encoding: binary");
            header("Content-Length: ".@filesize($filename));
            set_time_limit(0);
            @readfile("$filename") or die("File not found.");
0
adnbenji
 
Le probleme est que j'ai un systeme de partage de fichier et que celui ci ne télécharge pas directement les fichiers mais les ouvres, donc pour Downlaoder les fichier, j'ai effectuer ceci(sur la page de mon partage de fichier):
<td align="center"> <a class="lien" href="' . $protocol . 'away.dowtek.fr/in/dl.php?file=' . $file . '&path='. $protocol . 'monsite.fr/' . strstr($path, 'away') . '"><img src="include/dl.png"> Télécharger</td>

se qui me fait un lien "Télécharger" qui envoye "
file=nom du fichier&path=repertoire du fichier


et sur dl.php:
$filename = $_GET['file']; 
            $filename = 'mondite.fr/' + strstr(realpath($filename),'away');


et ça me met:

NO FILE HERE
0