Forcer le telechargement en PHP

   Bonjour

J'utilise le script suivant pour forcer le telechargement

Voici enfin le script pour forcer le telechargement d'un fichier .doc, .jpg, .xls, ouverts automatiquement par le navigateur.

Dans la page où se trouve le lien hypertexte du fichier à telecharger

<?php
...
$filname=nom du fichier à downloader;
$dir= "chemin complet vers le fichier/".$filname;
...
?>
...
<a href="download.php?dir=<?=$dir?>&filname=<?=$filname?>">download</a>
...

Dans le fichier download.php ecrire ce simple code:

<?php
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$filname");
readfile("$chemin");
?>

Cela marche tres bien sur free.fr, mais chez mon nouvel hebergeur le nom du fichier est toujours download.avi (avi est un exemple)
Le contenu du fichier est le bon mais le nom me pose pb

Dans header("Content-Disposition: attachment; filename=$filname"); on dirai que filename prend la valeur du nom du fichier download.php3 ... Bref A L'AIDE ..

JI

6 réponses

  1. allez j suis sympa je vous laisse une chance de me repondre ;)
    0
    1. Merci pour l'info, j'en prend bonne note. Mais ceci ne regle pas monPb ;) Car c coté serveur que se trouve le PB

      Qqun aurait une idée?
      0
      1. Salut,

        Elle est vachement bien ta question : j'ai eu le même problème et je n'ai jamais réussi à le faire passer. De mémoire je crois que j'ai été obligé d'utiliser une astuce : j'ai fait une redirection. J'ai utilisé l'erreur 302 je crois et j'ai mis un header(Location : <urlfichier>).
        Pas très joli, je te l'accorde... Mais bon. Je ne peux pas t'assurer que cela marche parce que pour moi, le serveur Php que j'utilisais n'acceptais pas les header d'erreur HTTP, tu aura peut être plus de chance...
        0
        1. Merci Dud j'essairai ca si jamais je ne trouve pas d'autre solution!
          0
          1. Salut,
            Si tu trouves une autre solution, tu pourras me la filer, STP ?

            Dud
            0