uploader plusieurs fichier

Par jeannot_gates, il y a 9 ans


Salut les gars je travail avec des amis sur un projet et nous rencontrons un petit problème sur une des options de l'espace admin du projet et en effet grâce a un formulaire nous aimerons par exemple que l'on puisse Upload une image, un titre de musique, le nom de l'artiste et aussi le poids du fichiers ";

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

Entourez votre code pour bien le mettre en f<?php session_start(); include '../functions/connect.func.php'; $ajouter_pays=$bdd->query("SELECT * FROM ajouter_pays ORDER BY id DESC"); if(isset($_SESSION['login'])) { ?> <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <meta name="language" content="fr"> <link rel="stylesheet" type="text/css" href="css/style.css"> <link rel="icon" type="image/png" href="../img/twitter.png"/> <link rel='stylesheet' href='font/css/font-awesome.css' type='text/css' media='all'/> <link rel="stylesheet" type="text/css" href="css/ministrap.css"> <script src="js/jquery-1.7.2.min.js"></script> </head> <body class="with-top-bar"> <div class="top-bar"> <div class="container-full"> <div class="row"> <ul class="menu"> <li class="active"><a href="choisir_pays.php">Choisir un pays</a></li> <li><a href="">Mettre le vidèo ou l'images d'intro</a></li> <li><a href="">Ajouter des pub</a></li> <li><a href="ajouter_pays.php">Ajouter un pays</a></li> <li><a href="deconnexion.php">Se deconnecter</a></li> </ul> </div> </div> </div> <h1 style="text-align:center; margin-top:-10px;">Le pays choisi est: </h1> <?php if(isset($_POST['submit'],$_POST['titre_chanson'],$_POST['nom_artiste'],$_POST['nom_page'],$_POST['poid'])) { $nom_page=htmlspecialchars($_POST['nom_page']); $titre_chanson=htmlspecialchars($_POST['titre_chanson']); $nom_artiste=htmlspecialchars($_POST['nom_artiste']); $poid=(int) $_POST['poid']; if(!empty($titre_chanson) && !empty($nom_artiste) && !empty($nom_page) && !empty($poid)) { $file_name= $_FILES['image_post']['name']; $file_extension= strrchr($file_name, "."); $file_tmp_name= $_FILES['image_post']['tmp_name']; $file_dest= '../img/'.$file_name; $extensions_autorisees= array('.jpg', '.jpeg','.png','.PNG'); if(in_array($file_extension, $extensions_autorisees)) { if(move_uploaded_file($file_tmp_name, $file_dest)) { // deuxieme partie pour insere une musique dans le site web $file_name2= $_FILES['musique_post']['name']; $file_extension2= strrchr($file_name2, "."); $file_tmp_name2= $_FILES['musique_post']['tmp_name']; $emplacement_du_fichier= '../download/'.$file_name2; $extensions_autorisees2= array('.mp3', '.MP3'); if(in_array($file_extension2, $extensions_autorisees2)) { if(move_uploaded_file($file_tmp_name2, $emplacement_du_fichier)) { $ins=$bdd->prepare("INSERT INTO cameroun(titre_chanson,nom_artiste,nom_page,date_pubication,nom_image, image_url,filename,chemin_download,poid)VALUES(?,?,?,NOW(),?,?,?,?,?)"); $ins->execute(array($titre_chanson,$nom_artiste,$nom_page,$file_name,$file_dest,$file_name2,$emplacement_du_fichier,$poid)); $message="La musique a ete bien poster"; } else { $message="Une erreur est survenue lors de l'envoi du fichier audio"; } } else { $message='Votre fichier doit être de format .mp3 ou .MP3'; } } else { $message="Une erreur est survenue lors de l'envoi du fichier image"; } } else { $message="Votre fichier doit être de format .jpg ou .jpeg"; } } else { $message="Veuillez remplir tout les champs"; } } ?> <div class="container"> <div class="row"> <div class="formulaire"> <form method="post" action="" enctype="multipart/form-data"> <input type="text" name="nom_page" placeholder="Le nom de la page" id="nom_page"><br> <input type="file" name="image_post" id="image_upload" value="ajouter l'image"><br> <input type="file" name="musique_post" id="image_upload" value="ajouter l'audio"><br> <input type="text" name="titre_chanson" placeholder="titre de la chanson" id="nom_page"><br> <input type="text" name="nom_artiste" placeholder="le nom de l'artiste" id="nom_page"><br> <input type="text" name="poid" placeholder="poid du morceau" id="nom_page"><br> <button type='submit' class='uploader_fichier' name="submit"><i class="fa fa-cloud-upload fa-2x" aria-hidden="true"></i>&nbsp;&nbsp;Uploader le fichier.</button> </form> <br> <?php if(isset($message)) { echo '<p class="message">'.$message.'</p>'; } ?> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ $(".message").fadeOut(5000); }); </script> </body> </html> <?php } else { header("location:index.php"); } ?>orme

Ce que je veux

uploader plusieurs fichiers un fichier audio un une image et du texte

Ce que j'obtiens

dans notre code on a une erreur un niveau de la ligne 74 $message="Une erreur est survenue lors de l'envoi du fichier audio

5 réponses

SLK, il y a 9 ans

Salut,

est-ce que tu as essayé de mettre un chemin "absolu" au lieu de "relatif" pour la variable $emplacement_du_fichier ?

jeannot_gates, il y a 9 ans

Non pas encore je vais éssayer avec cela pour voir un peut si ceka marche

JeremieMeunier, il y a 9 ans

Pour moi il y a un problème dans l'insert de ta requête !

<?php $date_actu = date('Y-m-d H:i:s'); //La date 2016-10-24 18:32:46 $ins=$bdd->prepare("INSERT INTO cameroun(titre_chanson, nom_artiste, nom_page, date_publication, nom_image, image_url, filename, chemin_download, poid)VALUES(:titre_chanson, :nom_artiste, :nom_page, :date_publication, :nom_image, :image_url, :filename, :chemin_download, :poid)"); $ins->execute(array('titre_chanson' => $titre_chanson, 'nom_artiste' => $nom_artiste, 'nom_page' => $nom_page, 'date_publication' => $date_actu, 'nom_image' => $nom_image, 'image_url' => $img_url, 'filename' => $nom_chanson, 'chemin_download' => $chemin_download, 'poid' => $poid)); ?>
Huggy, il y a 9 ans

@JeremieMeunier non, tu n'est pas obligé de nommer les paramètres
le pb doit venir de l'upload
il faut vérifier les erreurs comme ceci

if ($_FILES['musique_post']['error']) { switch ($_FILES['musique_post']['error']){ case 1: // UPLOAD_ERR_INI_SIZE $error = "444: Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !"; break; case 2: // UPLOAD_ERR_FORM_SIZE $error = "555: Le fichier dépasse la limite autorisée dans le formulaire HTML !"; break; case 3: // UPLOAD_ERR_PARTIAL $error = "L'envoi du fichier a été interrompu durant le transfert !"; break; case 4: // UPLOAD_ERR_NO_FILE $error = "666: Le fichier que vous avez envoyé a une taille nulle !"; break; } }
Babio, il y a 9 ans

Voici un truc semblable au tien (avec des bonus), j'espere que sa t'aidera

require_once('necessaires/db.php'); //si l'utilisateur clique sur uploader if(isset($_POST['submit'])) { $fileSize = $_FILES["file"]["size"]; if ($fileSize < 20074449) { if(isset($_GET['am'])){ $detail = $bdd->prepare("SELECT * FROM albums_mixtapes WHERE artiste = ? AND titre = ?"); $detail->execute(array($_GET['artiste'],$_GET['am'])); $verif = $detail->rowCount(); if($verif === 1){ $info = $detail->fetch(); $nom_artiste = $info->artiste; $titre_single = htmlspecialchars(trim(addslashes($_POST['titre']))); $image_single = $info->cover; $image_artiste = $info->cover; $en_feat = htmlspecialchars(trim($_POST['feat'])); $titre_single = htmlspecialchars(trim($_POST['titre'])); $genre_single = htmlspecialchars(trim($_POST['genre'])); $duree_single = htmlspecialchars(trim($_POST['duree'])); $production_beat = htmlspecialchars(trim($_POST['prod'])); $facebook = $info->fb; $mixtape = $info->titre; $pays = $info->pays; $mode_promo = $info->mode; }else{ echo 'Cette mixtape ou album n\'existe pas'; exit(); } }else{ //reconnaissances et sécurisisation des variables renvoyées $nom_artiste = htmlspecialchars(trim($_POST['artiste'])); $titre_single = htmlspecialchars(trim($_POST['titre'])); $en_feat = htmlspecialchars(trim($_POST['feat'])); $genre_single = htmlspecialchars(trim($_POST['genre'])); $duree_single = htmlspecialchars(trim($_POST['duree'])); $mode_promo = htmlspecialchars(trim($_POST['mode'])); $production_beat = htmlspecialchars(trim($_POST['prod'])); $pays = htmlspecialchars(trim($_POST['pays'])); $facebook = htmlspecialchars(trim($_POST['fb'])); $offres = htmlspecialchars(trim($_POST['offres'])); $mixtape = htmlspecialchars(trim($_POST['mixtape'])); //images uploader //img single // on attribut un nom aléatoire $strf = ""; $str = "abcdefghijklmnpqrstuvwxy0123456789_"; srand((double)microtime()*1000000); for($i=0; $i<40; $i++) { $strf .= $str[rand()%strlen($str)]; } $image_single = str_replace(' ','-',str_replace('é','-',strtolower($nom_artiste.' '.$strf.' '.$_FILES['cover']['name']))); $image_single_tmp = $_FILES['cover']['tmp_name']; if (!empty($image_single)) { move_uploaded_file($image_single_tmp,'images/cover/'.$image_single); }else{ $image_single = 'cover.jpg'; } $image_artiste = $_FILES['img_artiste']['name']; $image_artiste_tmp = $_FILES['img_artiste']['tmp_name']; if (!empty($image_artiste)) { move_uploaded_file($image_artiste_tmp,'images/artistes/'.$image_artiste); }else{ $image_single = 'cover.jpg'; } } // extencions permises $allowedExts = array("mp3","MP3"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if ($extension == 'mp3' || $extension == 'MP3') { if ((($_FILES["file"]["type"] == "audio/mp3") || ($_FILES["file"]["type"] == "audio/MP3")) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "0"; } else { $fileName = $_FILES["file"]["name"]; $fileType = $_FILES["file"]["type"]; $urlid = rand(10000,90000); $urlid2 = rand(10000000000000000,900000000000000000); //dossier ou le single sera envoyé $dossier = "singles/"; move_uploaded_file($_FILES["file"]["tmp_name"], $dossier. $urlid2. ".mp3" ); $url = "$urlid2.mp3"; //requete sql //requête d'insertion des info sur le fichier dans le mp3 $query = $bdd->prepare("INSERT INTO singles(id,artiste,titre,taille,genre,mode,cover,album_mixtape,lien,date_ajout,pays,prod,source,duree,feat,ecoutes,vote_pour,vote_contre,telechargements,vues) VALUES (?,?,?,?,?,?,?,?,?,NOW(),?,?,?,?,?,0,0,0,0,0) "); $query->execute(array($urlid,$nom_artiste,$titre_single,$fileSize,$genre_single,$mode_promo,$image_single,$mixtape,$urlid2,$pays,$production_beat,$fileName,$duree_single,$en_feat)); //pour ajouter des donnée a la table artistes $artiste = $bdd->prepare("SELECT id FROM artistes WHERE nom = ?"); $artiste->execute(array($nom_artiste)); $conteA = $artiste->rowCount(); if($conteA === 0){ $new_artiste = $bdd->prepare("INSERT INTO artistes(nom,facebook,img,pays) VALUES (?,?,?,?)"); $new_artiste->execute(array($nom_artiste,$facebook,$image_artiste,$pays)); } /*if($offres == 'platine' || $offres == 'or' || $offres == 'argent') { $req1 = $bdd->query("INSERT INTO offres_pris(id,offres,date_debut,id_source) VALUES ('','$offres',NOW(),'$urlid')"); } //augmenter le nmbre de singles concernat la mixtape en question if(!empty($mixtape)) { $sqlQ = $bdd->prepare("UPDATE albums_mixtapes SET nbr_mp3 = nbr_mp3+1 WHERE team = ? AND mixtape = ? "); $sqlQ->execute(array($nom_artiste, $mixtape)); } //on vérifie sil'artiste n'est pas déjà inscrit $requete = $bdd->query("SELECT id FROM teams_artistes WHERE nom = '$nom_artiste'"); $conte = $requete->rowCount(); if($conte === 0) { if(empty($image_artiste)) { $image_artiste = 'cover.jpg'; } $q = $bdd->query("INSERT INTO teams_artistes VALUES ('','$nom_artiste',0,0,0,0,0,'$envoyeur',0,0,0,1,0,'$pays',NOW(),'$image_artiste','$label_team') "); }else{ $q = $bdd->query("UPDATE teams_artistes SET singles = singles+1 WHERE nom = '$nom_artiste'"); } //requete pour mettre le nombre de single de la mixtape a jour au cas ou sa l'est if(!empty($mixtape)) { $sqlREQ = $bdd->prepare("UPDATE albums_mixtapes SET nbr_mp3 = nbr_mp3 WHERE team = ? AND mixtape = ?"); $sqlREQ->execute(array($nom_artiste, $mixtape)); }*/ echo "Le fichier ".$fileName ." a été bien uploadé <br> <a href='zik.php?id=$urlid' target='_blank'>Voir le single</a>"; } } }else{ echo "Veiller sélectionner un fichier audio mp3"; } }else{ echo "Votre fichier mp3 ne doit pas dépasser 20 MB"; } }