Version complète: sur le forum Webmaster Hub : Création d'un fichier de téléchargement
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
dimension-pc
Bonjour à tous ^_^

J'aurais besoin d'aide pour un code php.
J'aimerais créer une rubrique de téléchargement, et je souhaiterais utiliser un fichier telechargement.php pour télécharger les fichiers wacko.gif

Je m'explique:
Imaginons que le lien de mon fichier est:
http://www.dimension-pc.com/fichier.rar

Alors je voudrais que l'on accède à ce fichier par le lien:
http://www.dimension-pc.com/telechargement.php?=fichier.rar
Ou un lien de ce genre.

Cependant, quel code faudrais t-il mettre dans ce fichier telechargement.php et faudra t-il le modifier à chaque fois que je désire ajouter un fichier (nommé fichier_2.rar) ou est-ce que le lien http://www.dimension-pc.com/telechargement...?=fichier_2.rar marchera tout seul ?

Je vous remercie.
Titag
Salut,

Pour ca il faut utiliser la fonction header() qui permet d'envoyer les entètes nécessaires pour que le navigateur débute le téléchargement.

http://fr.php.net/manual/fr/function.header.php pour toutes les explications.
Dan
Salut dimension-pc,

J'imagine que c'est pour éviter le hot-linking sur les fichiers et permettre au fichier telechargement.php de s'assurer de l'identité de l'internaute.

Si le script est bien écrit, tu n'auras rien à changer. Par contre, si tu veux éviter le hot-linking, tu peux mettre un répertoire hors de l'arborescence web et accéder ce répertoire au sein du fichier telechargement.php.

J'ai mis cela en place pour l'un des membres du forum qui propose des vidéos entéléchargement et retrouvait les URLs sur d'autres forums.
Depuis, plus aucun problème wink.gif

C'est bien plus sûr wink.gif
dimension-pc
Merci, je vais aller voir le lien que tu m'a donné ^_^

En espérant que je trouve le bon code (comme Dan l'indique), car c'est effectivement pour éviter les liens sur les autres sites Internet smile.gif
Dan
Vas voir ce post: http://www.webmaster-hub.com/index.php?sho...indpost&p=64806
Tu y trouveras le fichier se basant sur le toolkit IPBSDK, mais les modifs sont simples à faire wink.gif

Dan
dimension-pc
Re,
Merci pour ton lien ^_^
Je suis allé voir ton script, et j'ai essayé de le modifier, car la fonction IPBSDK ne me sert à rien, mais ça ne marche pas.

Si on va sur: http://www.dimension-pc.com/telecharger.php
Un fichier du même nom que mon dossier est proposé au téléchargement.
Mais je n'arrive pas à obtenir le fichier IPB.zip se trouvant dans ce même dossier.

Voici le code de mon fichier:
CODE
<?php
$filesdir="/home/c/cedfr/www/test/"; // attention: terminer avec un /
$filename = $filesdir.$_GET['file'];
$today = date('j-m-y, H:i:s');
if (file_exists($filename)) {
                       header("Pragma: No Cache");
                       header("Content-Type: application/force-download");
                       $user_agent = strtolower ($_SERVER["HTTP_USER_AGENT"]);
                       if ((is_integer (strpos($user_agent, "msie"))) && (is_integer (strpos($user_agent, "win")))) {
                               header( "Content-Disposition: filename=".basename($filename).";" );
                       }
                       else {
                               header( "Content-Disposition: attachment; filename=".basename($filename).";" );
                       }
                       header("Content-Transfer-Encoding: binary");
                       header("Content-Length: ".filesize($filename));
                       $logdata = $today." --- ".$filename." --- ".filesize($filename)."\n";
                       $logfile = $filesdir."transfers.log";
                       readfile("$filename");
               }
               else {
                       print "<center>Fichier inexistant</center>";
                       exit;
               }
?>


Ais-je fait une erreur quelque part? wacko.gif
Dan
Salut,

Déjà tu peux enlever ces 2 lignes si tu ne fais pas de logging:
CODE
$logdata = $today." --- ".$filename." --- ".filesize($filename)."\n";
$logfile = $filesdir."transfers.log";

elles ne te servent à rien.

Ca ne marche pas? Tu veux dire quoi ? Une erreur ou autre chose ?
Dan
Il faut donner l'argument file en paramètre.... ton oubli est là wink.gif

http://www.dimension-pc.com/telecharger.php?file=IPB.zip
dimension-pc
Je ne sais vraiment pas quoi dire blink.gif

Tu est un Pro Dan smile.gif

Encore merci ^_^
Dan
laugh.gif

Mais en enlevant l'appel à IPBDSK, tu n'as plus d'autentification de l'utilisateur. Cela ne sert donc pas à grand chose, non ?
Si c'est pour le site dimension-pc, tu aurais pû télécharger le toolkit IPB et garder l'authentification de l'utilisateur.
dimension-pc
CITATION(Dan @ mercredi 16 février 2005, 18h09)
laugh.gif

Mais en enlevant l'appel à IPBDSK, tu n'as plus d'autentification de l'utilisateur. Cela ne sert donc pas à grand chose, non ?
Si c'est pour le site dimension-pc, tu aurais pû télécharger le toolkit IPB et garder l'authentification de l'utilisateur.
*


lol
Ce qui te semble inutile ne l'est pas pour tout le monde laugh.gif
Pour ma part, je voulais un fichier qui permette d'obtenir à partir d'un lien type telecharger.php?file=xxxx et ça marche grâce à ton script ^_^
Pour le fichier, c'est pour un site pas encore construit que je créer en local tongue.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.