Upload multiple file(image) php

Fermé
Phpdebutant - Modifié le 27 nov. 2021 à 17:22
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 - 27 nov. 2021 à 17:52
Bonjour,
Certains images n'est sont pas uploadé, je ne sais pas où viens l'erreur, je ne sais si c'est dû à la taille de certains fichiers ou un problème avec mon code! Aide moi svp


Configuration: Linux / Chrome 62.0.3202.84

<?php 
session_start();
$con=mysqli_connect("localhost", "root", "", "baselemendiant");
if(mysqli_connect_errno()){
echo "Connection Fail".mysqli_connect_error();
}
if(!$_SESSION['adminId']){
    header('Location: connexion.php');
}
?>
<!DOCTYPE html>
<html lang="en">
 <head>
  <!-- Required meta tags -->
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <title>Multiple Images in Single Colomn from Multiple Input Field</title>
  <link href="imgn/favicon.png" rel="icon">
     <link href="imgn/apple-touch-icon.png" rel="apple-touch-icon">

     <!-- Bootstrap core CSS -->
     <link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet">
     <link href="lib/font-awesome/css/font-awesome.css" rel="stylesheet" />
     <link rel="stylesheet" type="text/css" href="csss/zabuto_calendar.css">
     <link rel="stylesheet" type="text/css" href="lib/gritter/css/jquery.gritter.css" />
     <!-- Custom styles for this template -->
     <link href="csss/style.css" rel="stylesheet">
     <link href="csss/style-responsive.css" rel="stylesheet">

  <!-- Bootstrap CSS -->
 </head>
 <body>
     <section id="container">
        

         <?php include("header.php"); ?>
         <?php include("aside.php"); ?>

     <section id="main-content">

            <div class="clearfix"></div>
                <div class="content">
                <div class="container">
                  <br /><br />
                  <br /><br />
                  <div class="grid-title no-border">
       <form class="form-inline" action="" method="post" enctype="multipart/form-data">
        <h4>ADD artistes</h4>
        <br /><br />
        <div class="form-group">
         <label>Name</label>
        <input type="text" name="nom" class="form-control">
        </div>
        <div class="form-group">
         <label>nome artiste</label>
        <input type="text" name="nomeArtiste" class="form-control">
        </div>
        <div class="form-group">
         <label>cidade</label>
        <input type="text" name="cidade" class="form-control">
        </div>
        <br /><br />
        <div class="form-group">
         <label>titre image1</label>
        <input type="text" name="titreArt" class="form-control">
        </div>
        <div class="form-group">
         <label>titre 2</label>
        <input type="text" name="letitre1" class="form-control">
        </div>
        <div class="form-group">
         <label>titre 3</label>
        <input type="text" name="autretitre" class="form-control">
        </div>
        <br /><br />
        <div class="form-group">
         <label>descrip</label>
        <textarea type="text" name="descrption" class="form-control"></textarea>
        </div>
        <div class="form-group">
         <label>descrip2</label>
        <textarea type="text" name="unautredesc" class="form-control"></textarea>
        </div>
        <div class="form-group">
         <label>descrip3</label>
        <textarea type="text" name="descfini" class="form-control"></textarea>
        </div>
        <br /><br />
        <div class="form-group">
         <label>bio</label>
        <textarea type="text" name="bio" class="form-control"></textarea>
        </div>
        <br /><br />
        <div class="form-group">
         <label>artistlinkface</label>
        <input type="text" name="artistlinkface" class="form-control">
        </div>
        <div class="form-group">
         <label>artistlinktwet</label>
        <input type="text" name="artistlinktwet" class="form-control">
        </div>
        <div class="form-group">
         <label>artistlinkinsta</label>
        <input type="text" name="artistlinkinsta" class="form-control">
        </div>
        <div class="form-group">
         <label>Upload Image 1</label>
        <input type="file" name="img1" class="form-control">
        </div>
        <div class="form-group">
         <label>Upload Image 2</label>
        <input type="file" name="img2" class="form-control">
        </div>
        <br /><br />
        <div class="form-group">
         <label>Upload Image 3</label>
        <input type="file" name="img3" class="form-control">
        </div>
        <div class="form-group">
         <label>Upload Image 4</label>
        <input type="file" name="img4" class="form-control">
        </div>
        <br /><br />
        <div class="form-group">
         <input type="submit" name="submit" class="btn btn-primary
         ">
        </div>
        
       </form>
       <?php
                if(isset($erreur)) {
                   echo '<font color="red">'.$erreur."</font>";
                }
                ?>
      </div>
     </div>
    </div>
    <div class="col-sm-3"></div>
   </div>
  </div>
    <script src="lib/jquery/jquery.min.js"></script>

        <script src="lib/bootstrap/js/bootstrap.min.js"></script>
        <script class="include" type="text/javascript" src="lib/jquery.dcjqaccordion.2.7.js"></script>
        <script src="lib/jquery.scrollTo.min.js"></script>
        <script src="lib/jquery.nicescroll.js" type="text/javascript"></script>
        <script src="lib/jquery.sparkline.js"></script>
        <!--common script for all pages-->
        <script src="lib/common-scripts.js"></script>
        <script type="text/javascript" src="lib/gritter/js/jquery.gritter.js"></script>
        <script type="text/javascript" src="lib/gritter-conf.js"></script>
        <!--script for this page-->
        <script src="lib/sparkline-chart.js"></script>
        <script src="lib/zabuto_calendar.js"></script>
        <script type="text/javascript">
        </script>
        <script type="application/javascript">
        <script src="assets/plugins/jquery-1.8.3.min.js" type="text/javascript"></script> 
        <script src="assets/plugins/jquery-ui/jquery-ui-1.10.1.custom.min.js" type="text/javascript"></script> 
        <script src="assets/plugins/boostrapv3/js/bootstrap.min.js" type="text/javascript"></script>
        <script src="assets/plugins/breakpoints.js" type="text/javascript"></script> 
        <script src="assets/plugins/jquery-unveil/jquery.unveil.min.js" type="text/javascript"></script> 
        <!-- END CORE JS FRAMEWORK --> 
        <!-- BEGIN PAGE LEVEL JS -->    
        <script src="assets/plugins/pace/pace.min.js" type="text/javascript"></script>  
        <script src="assets/plugins/jquery-scrollbar/jquery.scrollbar.min.js" type="text/javascript"></script>
        <script src="assets/plugins/jquery-block-ui/jqueryblockui.js" type="text/javascript"></script> 
        <script src="assets/plugins/jquery-sparkline/jquery-sparkline.js"></script>
        <script src="assets/plugins/jquery-numberAnimate/jquery.animateNumbers.js" type="text/javascript"></script>
        <!-- END PAGE LEVEL PLUGINS -->     
        
        <!-- BEGIN CORE TEMPLATE JS --> 
        <script src="assets/js/core.js" type="text/javascript"></script> 
        <!-- END CORE TEMPLATE JS -->       
</html>
 </body>
</html>

<?php 
if(isset($_POST['submit']))
{
 include 'config.php';
 $nom=$_POST['nom'];
 $nomeArtiste=$_POST['nomeArtiste'];
 $cidade=$_POST['cidade'];
 $titreArt=$_POST['titreArt'];
 $letitre1=$_POST['letitre1'];
 $autretitre=$_POST['autretitre'];
 $descrption=$_POST['descrption'];
 $unautredesc=$_POST['unautredesc'];
 $descfini=$_POST['descfini'];
 $bio=$_POST['bio'];
 $artistlinkface=$_POST['artistlinkface'];
 $artistlinktwet=$_POST['artistlinktwet'];
 $artistlinkinsta=$_POST['artistlinkinsta'];
 $location="upload/";
 $file1=$_FILES['img1']['name'];
 $file_tmp1=$_FILES['img1']['tmp_name'];
 $file2=$_FILES['img2']['name'];
 $file_tmp2=$_FILES['img2']['tmp_name'];
 $file3=$_FILES['img3']['name'];
 $file_tmp3=$_FILES['img3']['tmp_name'];
 $file4=$_FILES['img4']['name'];
 $file_tmp4=$_FILES['img4']['tmp_name'];
 $data=[];
 $data1=[$file1];
 $data2=[$file2];
 $data3=[$file3];
 $data4=[$file4];
 $image1=implode(' ',$data1);
 $image2=implode(' ',$data2);
 $image3=implode(' ',$data3);
 $image4=implode(' ',$data4);
 $query="insert into artistes (nom,nomeArtiste,cidade,titreArt,letitre1,autretitre,descrption,unautredesc,descfini,bio,artistlinkface,artistlinktwet,artistlinkinsta,image1,image2,image3,image4) values('$nom','$nomeArtiste','$cidade','$titreArt','$letitre1','$autretitre','$descrption','$unautredesc','$descfini','$bio','$artistlinkface','$artistlinktwet','$artistlinkinsta','$image1','$image2','$image3','$image4')";
 $fire=mysqli_query($con,$query);
 if($fire)
 {
  move_uploaded_file($file_tmp1, $location.$file1);
  move_uploaded_file($file_tmp2, $location.$file2);
  move_uploaded_file($file_tmp3, $location.$file3);
  move_uploaded_file($file_tmp4, $location.$file4);
  echo "success";
 }
 else
 {
  echo "failed";
 }
}

?>


Edit: ajout des balises de code.
A voir également:

2 réponses

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
27 nov. 2021 à 17:24
Bonjour

Ton problème se situe sur un champ de ton formulaire ou dans une des variables $_FILES en particulier ?
0
Phpdebutant
27 nov. 2021 à 17:38
Les variables files, le code fonctionne correctement, mais c'est juste il y a certains images qui n'est sont pas uploadé
0
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
Modifié le 27 nov. 2021 à 17:52
Il faudrait que tu ajoutes quelques vérifications.
A commencer par
https://www.php.net/manual/fr/function.is-uploaded-file.php

et ensuite faire également un if sur les move

if (is_uploaded_file($file_tmp1)) {
  if(! move_uploaded_file($file_tmp1, $location.$file1)){
    echo "Erreur lors du move du fichier $file_tmp1";
  }
}else{
  echo "Erreur lors de l'upolad du fichier $file_tmp1";
} 


Tu trouveras également d'autres vérifications, sur la taille du fichier par exemple
Si il existe déjà ou non sur le serveur
etc..
https://www.w3schools.com/php/php_file_upload.asp


Et au passage, quelques conseils utiles pour l'écriture de ton code php
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
(à commencer par le placement du code PHP à mettre, de préférence, AVANT le code html et pas après comme tu l'as fais )


0