Faire un lien de téléchargement .mp3 sans compression [Résolu]

Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
- - Dernière réponse : jbtv
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
- 15 janv. 2012 à 18:58
Bonjour a tou !!!!

voilà mon souci

sur mon site dans le dossier ../xx-mp3/ il y à des fichier de type .mp3 non compresser (rar zip) et l'orque
je fait un liens genre "http://www.mon-site.fr/xx-mp3/le titre.mp3" et que je clique dessu
sa m'envoi sur la page "http://www.mon-site.fr/xx-mp3/le titre.mp3" et la musique commences (en gros le liens sert a écouté la musique) et se n'est pas se que je veux faire
Je voudrai que fichier .mp3 se télécharge lorsque l'on clique dessu !!!

et biensur je voudrai les garder au formats .mp3 sans les compresser (zip -rar)

quelqu'un aurai une solution ????

Merci
Afficher la suite 

14 réponses

Meilleure réponse
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
3
Merci
bonjour
tu fermes jamais les post ...
'reponse acceptée'
merci

Bonne programmation !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
Bonjour,

Avec une réécriture u header :
contentType = application/octet-stream

Puis, tu recopie le contenu du fichier directement en octet.

utilisation :
MonFichier.php?MonFichier=NomFichier.mp3

Après, tu peux prendre en get ou post avec éventuellement de l'URL rewritting.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
ololo merci beaucoup NHenry , mais la tu trop vite pour moi lol,

Pour le header, pas de probleme , sadonne sa
<?php
header('contentType = application/octet-stream ');
?> 


mais comment je fait la suite, copier en octet

Puis, tu recopie le contenu du fichier directement en octet.

utilisation :
MonFichier.php?MonFichier=NomFichier.mp3

Après, tu peux prendre en get ou post avec éventuellement de l'URL rewritting.


je ne comprend pas !!! pourrai tu m'aidez un peu plus ???

j'ai oublier de préciser que je ne suis qu'un total amateur lol

merci
Commenter la réponse de jbtv
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
Bonjour,

D'accord, regardes le format des chaines pour la fonction header, je crois que c'est : le séparateur.
Sinon, une fois le fichier connu (nom passé en paramètre POST ou GET, voir les formulaires), utilises la fonction readfile.

Quelles sont tes connaissances en PHP, car pour cela, il faut savoir récupérer les données d'un formulaire, et lire la doc sur internet.

Je pense que tu as ce dont tu as besoin pour tes recherches.

Sinon, précises plus les points de blocages.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
OK je vais suivre t'est indiquation sur la documentation sur internet ^^

Mais connaissance en PHP son simple aucune ou presque lol
je débute sur le php (j'ai que des notion de html et css)

mais tkt pas j'apprend tres vite

Pour recuperer les information d'un formulaire c'est bon sa je croi savoir ^^

sinon voilà en gros se que je veux faire

voici mon script ci-dessou
actuellement disponible a cette adressehttp://www.jbtvstreaming.fr/Hebergement_MP3/listes_completes_des_son_mp3.php
<CENTER>
<?php
$dirname = '../XX-MP3/';
$dir = opendir($dirname);
while($file = readdir($dir)) {
if($file != '..' && $file != '.' && !is_dir($dirname.$file)){
echo '<center>Titre :

'.$file.',
Pour écouter se son
<object type="application/x-shockwave-flash" data="dewplayer.swf?mp3=../XX-MP3/'.$file.'&amp;bgcolor=FFFFFF" width="200" height="20">

</object>,
[telechargement_mp3.php?titre='.$file.' 
  
  ]


Puis SUR LA PAGE "telechargement_mp3.php?titre=le titre.mp3"
(cette page me servira pour la pub)
puis elle redirige vers le téléchargement "download.php?musique=<?php echo $titre; ?>" qui est afficher en dessou de se code
(page
<?php $titre = (isset($_GET['titre'])) ? rawurldecode($_GET['titre']) : ''; ?>
<html>
<head>
<title>10seconde avant Telechargement</title>

<SCRIPT LANGUAGE="JavaScript">
window.setTimeout("document.a.b.value='9'",1000)
window.setTimeout("document.a.b.value='8'",2000)
window.setTimeout("document.a.b.value='7'",3000)
window.setTimeout("document.a.b.value='6'",4000)
window.setTimeout("document.a.b.value='5'",5000)
window.setTimeout("document.a.b.value='4'",6000)
window.setTimeout("document.a.b.value='3'",7000)
window.setTimeout("document.a.b.value='2'",8000)
window.setTimeout("document.a.b.value='1'",9000)
window.setTimeout("document.a.b.value='0';location=('download.php?musique=<?php echo $titre; ?>');",10000)
//-->
</script>

</head>

<center>
<FORM METHOD=POST name="a">
le téléchargement commencera dans : </center>
</FORM>
</center>




</html>


et la ma derniere page

download.php?musique=<?php echo $titre; ?>
<?php $musique = (isset($_GET['musique'])) ? rawurldecode($_GET['musique']) : ''; ?>

ET ICI JE C PAS



LA MUSIQUE SE TROUVE DANS LE DOSSIER EN PARTANT D ICI



../XX-MP3/<?php echo $musique; ?>



si je fait une redirection vers



../XX-MP3/<?php echo $musique; ?>



SA M AFFICHE UN PAGE BLANCHE AVEC LE SON MAIS Zéro téléchargement



voilà !!!!!
Commenter la réponse de jbtv
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
0
Merci
bonsoir

à franciser

change

elseif ( ! file_exists( 'files/'.$filename ) )

files/ par ton rep ...

euhh fait comme même attention à la s a c e m
c'est pas très lègal de distribuer de la musique comme ça

telechargement_mp3.php

<?php 
$filename = (isset($_GET['titre'])) ? rawurldecode($_GET['titre']) : ''; 

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
   ini_set('zlib.output_compression', 'Off');

// addition by Jorg Weske
$file_extension = strtolower(substr(strrchr($filename,"."),1));

if( $filename == "" ) 
{
  echo "<html><title>eLouai's Download Script</title>
  ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</html>";
  exit;
} elseif ( ! file_exists( 'files/'.$filename ) ) 

{
  echo "<html><title>eLouai's Download Script</title>
  ERROR: File not found. USE force-download.php?file=filepath</html>";
  exit;
}

else{

switch( $file_extension )
{
  
  case "mp3": $ctype="application/mp3"; break;
  /*
  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 "jpeg":
  case "jpg": $ctype="image/jpg"; break;
  */
  
  default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers 
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename="".basename($filename)."";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit;
}
?>


Bonne programmation !
Commenter la réponse de cod57
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
lol tkt pas pour l'illigaliter ^^ les son qui son pour l'instant son la pour les essai !!!

JE VIEN DE TESTER TON CODE CI-DESSU

En modifiant files/ par mon rep qui est dans un dossier en arriere se qui donne ../XX-MP3/

<?php 
$filename = (isset($_GET['titre'])) ? rawurldecode($_GET['titre']) : ''; 

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
   ini_set('zlib.output_compression', 'Off');

// addition by Jorg Weske
$file_extension = strtolower(substr(strrchr($filename,"."),1));

if( $filename == "" ) 
{
  echo "<html><title>eLouai's Download Script</title>

  ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</html>";

  exit;
} elseif ( ! file_exists( '../XX-MP3/'.$filename ) ) 

{
  echo "<html><title>eLouai's Download Script</title>

  ERROR: File not found. USE force-download.php?file=filepath</html>";

  exit;
}

else{

switch( $file_extension )
{
  
  case "mp3": $ctype="application/mp3"; break;
  
  default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers 
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename="".basename($filename)."";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit;
}
?>


et lorsque je clique sur le liens de la page precedente cette page

sa m'envoi sur ma page sur ma redirection apres 10 seconde puis a l'arriver sur cette page sa me donne

ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath
Commenter la réponse de jbtv
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
A si c'est bon javai ajouter une virgule en trop ^^ merci a vous !!!
Commenter la réponse de jbtv
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
OUpssssssss cod57

j'ai un probleme avec ta source

elle fonctionne pour le téléchargement mais le probleme il est que rien ne se telecharge ou plutot si le tite seulement taille du fichier mp3 recu 0 octet
Commenter la réponse de jbtv
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
0
Merci
change la fin

readfile('files/'.$filename);
exit;
}
?>
Bonne programmation !
Commenter la réponse de cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
9
0
Merci
comme avant file/ par ton rep

Bonne programmation !
Commenter la réponse de cod57
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
voila se que j'ai essayer

code qua tu ma passer a la base
readfile("$filename");
exit;
}
?>


sa c la fin comme tu me dit
readfile('files/'.$filename);
exit;
}
?> 


donc
jai aissi essayer
readfile('../XX-MP3/'.$filename);
exit;
}
?> 


sa ne fonctionnai pas toujour 0octet
donc j'ai essayer
et
'readfile("'../XX-MP3/'.$filename");
exit;
}
?>

sa me donne toujour
MP3 Format Sound (0 octets)
Commenter la réponse de jbtv
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
scuse moi Cod57

c'est bon j'ai modifier tout sa

header("Content-Disposition: attachment; filename="".basename('../XX-MP3/'.$filename)."";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize('../XX-MP3/'.$filename));
readfile('../XX-MP3/'.$filename);
exit;
}
?> 


et sa fonctionne nikel

encors merci Cod57
Commenter la réponse de jbtv
Messages postés
128
Date d'inscription
vendredi 25 novembre 2011
Statut
Membre
Dernière intervention
4 avril 2013
0
Merci
a oui c vrai scuse moi ^^
Commenter la réponse de jbtv