gros problème d'envoi d'images

Par frageinstein07, il y a 8 mois


Les bases HTML/CSS

Bonjour à tous voila que j'éssai d'inclure l'envoi d'images dans mon formulaire qui ne veulent tout simplement pas partir, pourtant lorsque je les sélectionne il apparait pourtant que j'ai choisi 4 fichiers par exemple mais a l'envoi

//voila le code nest pas plus compliqué que sa <form action="ajouter-photos.php" enctype="multipart/form-data" method="POST"> <input type="file" name="[]magallerie" id="" autocomplete="off" multiple> <div class="btn-container"><button type="submit" class="btn">Ajouter</button> </form> // et voici le cas de figure de lerreur () if(empty($_FILES)) { echo('Aucune image téléchargée'); exit(); }

6 réponses

Alainpre, il y a 8 mois

Modifie ton code comme cela :

<form action="ajouter-photos.php" enctype="multipart/form-data" method="POST"> <input type="file" name="magallerie[]" id="" autocomplete="off" multiple>
frageinstein07, il y a 8 mois
foreach($_FILES['magallerie'] as $key=>$value){ // début du switch if($_FILES['magallerie']['error'] !== UPLOAD_ERR_OK){ switch($_FILES['magallerie']['error']) { case UPLOAD_ERR_PARTIAL: $erreur['situation']="Le ficher a été partielement téléchargé"; $erreur['toast']="toast error"; echo json_encode($erreur); exit(); break; case UPLOAD_ERR_NO_FILE : $erreur['situation']='Aucun fichier téléchargé'; $erreur['toast']="toast error"; echo json_encode($erreur); exit(); break; default: $erreur['situation']="erreur inconnu"; $erreur['toast']="toast error"; echo json_encode($erreur); exit(); break; } }```
frageinstein07, il y a 8 mois

rebonjour merci encore pour l'aide là maintenant je suis dans le dernier cas de figure , le default on me dit une erreur inconnu je sais pas a quoi celà est du

Carouge10, il y a 8 mois

Bonsoir,

Fichiers trop volumineux ?

frageinstein07, il y a 8 mois

nonpas du tout le fichier n'est pas volumineux

frageinstein07, il y a 8 mois

rebonjour après de nombreuses recherches j'ai pu trouver une solution a mon problème, j'arrive maintenant a uploader plusieurs fichiers à la fois le problème est que chaque fichier sélectionné est uploader 2fois :D

<?php SESSION_START(); $erreur=[]; if($_SERVER['REQUEST_METHOD'] != 'POST') { $erreur['situation']="'Méthode d'envoi POST necesssaire...'"; $erreur['toast']="toast error"; echo json_encode($erreur); exit(); } $allowed_types = array('jpg', 'png', 'jpeg', 'gif'); $maxsize = 10 * 1024 * 1024; if(!empty(array_filter($_FILES['magallerie']['name']))) { // Loop through each file in files[] array foreach ($_FILES['magallerie']['tmp_name'] as $key => $value) { $file_tmpname = $_FILES['magallerie']['tmp_name'][$key]; $file_name = $_FILES['magallerie']['name'][$key]; $file_size = $_FILES['magallerie']['size'][$key]; $file_ext = pathinfo($file_name, PATHINFO_EXTENSION); $base=$_SESSION['mail']; $complete_name= $base.'.'.$file_ext; $destination = __DIR__."/images_clients/".$complete_name; $filepath = $destination.$complete_name; if(in_array(strtolower($file_ext), $allowed_types)) { if ($file_size > $maxsize) { $erreur['situation']="érreur : taille du fichier dépassé"; $erreur['toast']="toast error"; echo json_encode($erreur); } $i=1; $index=null; while (file_exists($destination)){ $complete_name= $base.":$i.".$file_ext; $destination = __DIR__."/images_clients/".$complete_name; $index=$i; $i++; } if( !move_uploaded_file($file_tmpname, $destination)){ $erreur['situation']='Erreur impossible de télécharger cette image !'; $erreur['toast']="toast error"; echo json_encode($erreur); exit(); } else{ if($index !=null){ $filename="images_clients/".$base . ":$index.". $file_ext; require_once 'classes.php'; $insert=$pdo->prepare("INSERT INTO images_clients SET nom=?,prenoms=?,pseudo=?,mail=?,lien=?,date =? "); $insert->execute([$_SESSION['nom'],$_SESSION['prenoms'],$_SESSION['pseudo'],$base,$filename,date('d-m-Y H:i:s')]); $erreur['situation']="La photo a bien été ajoutée"; $erreur['toast']="toast success"; echo json_encode($erreur); }else{ $filename="images_clients/". $base. "." . $file_ext; require_once 'classes.php'; $insert=$pdo->prepare("INSERT INTO images_clients SET nom=?,prenoms=?,pseudo=?,mail=?,lien=?,date =? "); // $insert->execute([$_SESSION['nom'],$_SESSION['prenoms'],$_SESSION['pseudo'],$_SESSION['mail'],$filename,date('d-m-Y H:i:s')]); $insert->execute([$_SESSION['nom'],$_SESSION['prenoms'],$_SESSION['pseudo'],$base,$filename,date('d-m-Y H:i:s')]); $erreur['situation']="Les photos ont bien été ajoutées"; $erreur['toast']="toast success"; echo json_encode($erreur); } } } else { // If file extension not valid $erreur['situation']="érreur : Format du fichier non valide"; $erreur['toast']="toast error"; } } } else { // If no files selected $erreur['situation']="érreur : Aucun fichier sélectionné"; $erreur['toast']="toast error"; }