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

Fermé
adnbenji - 17 avril 2011 à 11:48
 adnbenji - 18 avril 2011 à 10:55
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 293 Date d'inscription mardi 21 septembre 2010 Statut Membre Dernière intervention 12 mars 2013 38
17 avril 2011 à 11:53
$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
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