Afficher et lire les fichiers Mp3 sur une page

Fermé
charly_luyeye Messages postés 27 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 29 avril 2023 - Modifié le 9 avril 2019 à 20:58
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 - 12 avril 2019 à 18:41
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
A voir également:

1 réponse

jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
9 avril 2019 à 21:00
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...

0
charly_luyeye Messages postés 27 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 29 avril 2023
10 avril 2019 à 15:54
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?
0
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704 > charly_luyeye Messages postés 27 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 29 avril 2023
10 avril 2019 à 16:02
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 ?
0
charly_luyeye Messages postés 27 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 29 avril 2023
12 avril 2019 à 17:34
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!
0
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704 > charly_luyeye Messages postés 27 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 29 avril 2023
12 avril 2019 à 18:41
Le nom du fichier ne suffit pas...il faut le chemin complet
0