Faire un lien de téléchargement .mp3 sans compression

Résolu
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013 - 14 janv. 2012 à 17:07
jbtv Messages postés 126 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

14 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 janv. 2012 à 09:54
bonjour
tu fermes jamais les post ...
'reponse acceptée'
merci

Bonne programmation !
3
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
14 janv. 2012 à 18:02
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
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 18:22
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
0
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
14 janv. 2012 à 18:37
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 19:30
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à !!!!!
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 janv. 2012 à 19:59
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 !
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 21:40
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
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 21:49
A si c'est bon javai ajouter une virgule en trop ^^ merci a vous !!!
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 22:25
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
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 janv. 2012 à 22:37
change la fin

readfile('files/'.$filename);
exit;
}
?>
Bonne programmation !
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 janv. 2012 à 22:38
comme avant file/ par ton rep

Bonne programmation !
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 22:50
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)
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
14 janv. 2012 à 23:30
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
0
jbtv Messages postés 126 Date d'inscription vendredi 25 novembre 2011 Statut Membre Dernière intervention 4 avril 2013
15 janv. 2012 à 18:58
a oui c vrai scuse moi ^^
0
Rejoignez-nous