Forcer le téléchargement d'un fichier ?

Petit nouveau ! | 9 Messages

02 déc. 2006, 12:22

Bonjour tout monde
Je suis debutant
En faites je voudrais créer un fonction telechargement pour mon site PHP, ça veut dire que je veuille cacher ce fichier contient les musiques sur mon serveur. Je vous donne plus de détail
Mon fichier contient les musique qu'il s'appele Music
j'ai créé une base de donées comme celui

Code : Tout sélectionner

id_music titre lien
J'ai trouvé ce code de Forcer le téléchargement d'un fichier
<?php 

// reconnait l'extension pour que le téléchargement 
// corresponde au type de fichier afin d'éviter les erreurs de corruptions 

switch(strrchr(basename($Fichier_a_telecharger), ".")) { 


case ".mp3": $type = "audio/mpeg"; break; 
case ".avi": $type = "video/msvideo"; break; 

default: $type = "application/octet-stream"; break; 

} 

header("Content-disposition: attachment; filename=$Fichier_a_telecharger");  
header("Content-Type: application/force-download");  
header("Content-Transfer-Encoding: $type\n"); // ne pas enlever le \n 
header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));  
header("Pragma: no-cache");  
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");  
header("Expires: 0");  
readfile($chemin . $Fichier_a_telecharger);  

?>
Je sais que je doive définir d'abord deux variables ( $chemin et $Fichier_a_telecharger)
pour variables $chemin que je change mon fichier Music ($Music) mais
pour variables $Fichier_a_telecharger que je ne le sache pas changer quoi car tout les nom fichier musique que j'ai inséré la table lien dans base de donées.

est ce que vous pourriez m'aider SVP

Eléphant du PHP | 445 Messages

02 déc. 2006, 17:46

Bonjour,

Tout d'abord, essaye de mieux formuler tes phrases... Il faut relire plusieurs fois avant de comprendre, c'est quelque peu embêtant.

Pour ton soucis, as-tu essayé de remplacer

header("Content-Length: ".filesize($chemin . $Fichier_a_telecharger));
readfile($chemin . $Fichier_a_telecharger);

par

header("Content-Length: ".filesize($lien));
readfile($lien);


Par contre, comment les stockes tu ces liens ? Si tu mets http://domaine.fr/fichiers/fichier.mp3 cela ne marcherait pas à mon avis... Il te faudrait donc faire un simple str_replace() par exemple, afin d'enlever ce qu'il faut du lien en question pour ne garder que l'essentiel ^^

En espérant avoir été suffisamment clair...
LLDC
Ulti