Menu

Afficher et lire les fichiers Mp3 sur une page

Messages postés
7
Date d'inscription
samedi 30 décembre 2017
Statut
Membre
Dernière intervention
19 avril 2019
-
Bonjour!

Quelqu'un peut il maider à resoudre un probleme? Je me nome Charly
Je suis en train de concevoir un site basé sur la lecture de fichier audio Mp3.
jai un peu evoluer avec ce que je fais jus que là je parvien a stocker les infos dans table et dans le dossier temporaire. mais mon propbleme est je voulais recuperer les fichiers Mp3 est les afficher sur une page pour que les utilisateurs aient la possibilité de l'auditionner par un clic.

j'ai une page Upload.php qui contient le formulaire et voici les codes
<?php
       try
       {
        $bdd = new PDO ('mysql:host=localhost;dbname=clm_studio_multimedias', 'root' , '');
           
       }
       catch(Exeption $e)
        {
         die('erreur : ' .$e->getMessage());
        }

  if(isset($_POST['upload']) AND !empty ($_POST['upload']))
  {
   $titre_chant=htmlspecialchars($_POST['titre_chant']);
   $nom_album=htmlspecialchars($_POST['nom_album']);
   $auteur=htmlspecialchars($_POST['auteur']);
   $_file_name=htmlspecialchars($_FILES['song1']['name']);
   
   if( !empty($_POST['titre_chant']) AND !empty($_POST['nom_album']) AND !empty($_POST['auteur']) AND !empty($_FILES['song1']['name']))
   {
    $_file_size=$_FILES['song1']['size'];
    $tailleMax = 10097152;
   
    
    if(isset($_FILES['song1']['size']) <= $tailleMax)
    {
     $_file_tmp=$_FILES['song1']['tmp_name'];
     $_file_type=$_FILES['song1']['type'];
     $extensionValide = array('mp3');
     
     $extensionUpload = strtolower(substr(strrchr($_FILES['song1']['name'], '.'), 1));
     $song_name= $_POST['titre_chant']. "_" .$_POST['nom_album']. "_" .$_POST['auteur']. "." .$extensionUpload;
     
     if(in_array($extensionUpload, $extensionValide))
     {
      $chemin = "membre/album/" .$song_name;
      $resultat = move_uploaded_file($_FILES['song1']['tmp_name'], $chemin);
      
      
      if($resultat)
      {
       $insert=$bdd->prepare('INSERT INTO album(titre_chant,nom_album, auteur) VALUES(?,?,?,?)');
       $insert->execute(array($titre_chant, $nom_album, $auteur, $_file_name));
       $_SESSION['titre_chant']=$_POST['titre_chant'];
       $_SESSION['nom_album']=$_POST['nom_album'];
       $_SESSION['auteur']=$_POST['auteur'];
       $_SESSION['song1']=$_FILES['song1'];
       header('location:profil.php?id=' .$_SESSION['id']);
       
       //echo "file uploaded";
      }
      else
      {
       $erreur='Veillez reessaiyer!';
      }
     }
     else
     {
      $erreur='Format invalide! Mp3 format exigé!';
     }
    }
    else
    {
     $erreur='La taille de votre chanson ne doit pas depasser 10 Mo';
    }
   }
   else
   {
    $erreur='Remplissez tous les champs';
   }
  }
?>
   <div align="center">
    <h3>Upload songs</h3>
      
    <form method="POST" action="" enctype="multipart/form-data">
     <div>
      <table>
       <tr>
        <td><label>Titre chant:</label></td>
        <td><input type="texte" name="titre_chant"></td>
       </tr>
       <tr>
        <td><label>Nom album:</label></td>
        <td><input type="texte" name="nom_album"></td>
       </tr>
       <tr>
        <td><label>Auteur</label></td>
        <td><input type="texte" name="auteur"></td>
       </tr>
       <tr>
        <td><label></label></td>
        <td><input type="file" name="song1"></td>
       </tr>
       <tr>
        <td></td>
        <td><input type="submit" name="upload" value="upload"></td>
       </tr>
      </table>
     </div>
    </form><br/><br/><br/>
  
    
    <?php if(isset ($erreur)) echo'<font color="red">', "<br/>".$erreur.  "</font>" ;?>
    <?php if(isset ($valide)) echo'<font color="green">', "<br/>".$valide.  "</font>" ;?>
     
       
      
   </div>


et une page profil.php sur la que l'opération affichage et lecture doit se derouler
<table>
        <td>
         <tr><?php if($userinfo['id']== $_SESSION['id'])
             {
              echo 'Titre:' .$_SESSION['titre_chant'];
             }
             ?></tr><br/>
        </td>
        <td>
         <tr><?php if($userinfo['id']== $_SESSION['id'])
             {
              echo 'Album:' .$_SESSION['nom_album'];
             }
             ?></tr><br/></tr><br/>
        </td>
        <td>
         <tr><?php if($userinfo['id']== $_SESSION['id'])
             {
              echo 'A/C:' .$_SESSION['auteur'];
             }
             ?></tr><br/></tr><br/>
        </td>
        <td>
         <tr>
          <audio controls> 
            <source src="membre/album/<?php echo ($_SESSION['song1']); ?>"></source>
          </audio>
         </tr><br/>
        </td>
        
       </table>
       

EDIT : Ajout des balises de code

d'autres infos s'affiche mais je n'arrive pas à m'ensortire avec les fichiers Mp3

Merci pour votre aide
Afficher la suite 

Votre réponse

1 réponse

Messages postés
25251
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
1950
0
Merci
Bonjour,

Tu upload le fichier sur le serveur...
Tu stockes le nom du fichier dans la bdd
Mais pour l'affichage... tu essaies d'utiliser une variable $_SESSION['song1'] qui ne contient pas le chemin vers le fichier mais le contenu de la variable $_FILES....
Pourquoi ne pas mettre en session que le chemin du fichier ou alors aller le récupérer dans la bdd vu que tu l'y stockes ?
Et ensuite c'est ce lien qu'il faut utiliser...

charly_luyeye
Messages postés
7
Date d'inscription
samedi 30 décembre 2017
Statut
Membre
Dernière intervention
19 avril 2019
-
Bjr Jordan j'arrive déjà à stocker le fichier dans le serveur et dans la base de donnée. Mais dans le serveur il ne prend pas le nom tel que je le souhaite
$song_name= $_POST['titre_chant']. "_" .$_POST['nom_album']. "_" .$_POST['auteur']. "." .$extensionUpload;
Dans le serveur c'est ok. faudrait il que le nom stocké dans le serveur soit identique au nom stocké dans la base de données?
jordane45
Messages postés
25251
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
1950 > charly_luyeye
Messages postés
7
Date d'inscription
samedi 30 décembre 2017
Statut
Membre
Dernière intervention
19 avril 2019
-
ben sûr que oui... sinon comment veux tu le retrouver ?? Oo
Imagine que sur le serveur tu sauvegarde le fichier sous le nom : mon_super_fichier.pdf
et que dans la base, tu le nommes : peuimporte.csv ...... comment fais tu le lien entre les deux ????


dans le serveur il ne prend pas le nom tel que je le souhaite

et quel nom prend t'il au juste ?
car il semble bien que le code que tu utilises pour définir le nom du fichier soit potable
$extensionUpload = strtolower(substr(strrchr($_FILES['song1']['name'], '.'), 1));
$song_name= $_POST['titre_chant']. "_" .$_POST['nom_album']. "_" .$_POST['auteur']. "." .$extensionUpload;

Donc en quoi le nom n'est-il pas correct selon toi ?
charly_luyeye
Messages postés
7
Date d'inscription
samedi 30 décembre 2017
Statut
Membre
Dernière intervention
19 avril 2019
-
ok. je gardais le nom de fichier ($_FILES['song1']['name']) maintenant j'ai un nom identique au serveur et à la base des données. maintenat il me reste que de l'afficher je essaiyer avec le code

<!--<audio controls>
<source src="membre/album/<?php echo ($_SESSION[' nom du fichier']); ?>"></source>
</audio>-->
ça n'affiche qu'un lecteur qui ne joue pas!
jordane45
Messages postés
25251
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
1950 > charly_luyeye
Messages postés
7
Date d'inscription
samedi 30 décembre 2017
Statut
Membre
Dernière intervention
19 avril 2019
-
Le nom du fichier ne suffit pas...il faut le chemin complet
Commenter la réponse de jordane45