Quand j'upload plusieurs fichiers sa fonctionne pas

Johan-Krn

Johan-Krn Le 11 février 2017 à 22:27 (Édité le 25 janvier 2019 à 17:53)

Bonjour j'ai commencer a créer un système d'album sur mon site mais j'ai un problème lors que j'upload des photos.
Je veut que l'utilisateur puisse ajouter plusieurs photos en même temps du coup j'ai écrit sa
//HTML
<div class="form-inline">
   <div class="form-group">
      <input class="form-control" type="file" name="files[]" multiple required>
   </div>
</div>

//PHP
if(isset($_FILES['files'])){
   foreach($_FILES['files']['name'] as $file => $name){
      $filename = date('Ymd-His', time()).mt_rand().'-'.$name;
      try{
         $targetPath = 'uploads/'.get_session('user_id');
         if(!file_exists($targetPath)){
            mkdir($targetPath, 0777, true);
         }
         if(move_uploaded_file($_FILES['files']['tmp_name'][$file], 'uploads/'.get_session('user_id').'/'.$filename)){
            $q = $db->prepare("INSERT INTO img_album(user_id, album_id, image) VALUES(?, ?, ?)");
            $q->execute([get_session('user_id'), $_GET['id'], 'uploads/'.get_session('user_id').'/'.$filename]);
            redirect('album.php?user_id='.$user->id.'&id='.$_GET['id']);
         }
      }catch(Exception $e){
         echo($e);
      }
   }
}
quand j'upload une photos sa fonctionne mais si j'upload plusieurs photos sa upload que la dernière photo sélectionner si quelqu'un pouvais m'aider sa serait cool merci d'avance

Cordialement ToutPac
Zbuu

Zbuu Le 15 février 2017 à 11:41

Salut ! 

Je n'ai jamais essayé mais je crois que malgré l'attribut multiple="multiple" qu'il est impossible de récupérer les fichiers de cette façons via PHP. 

Essaye quand même de faire un var_dump($_FILES) pour voir si PHP récupére bien les fichiers. 

Et si ça ne fonctionne pas tu devrais plutôt créer plusieurs input files : 
<input type="file" name="files[]">
<input type="file" name="files[]">
Ou bien de gérer l'ajout d'un nouveau champ input grâce à js
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte