Upload de fichier

Par macinsteph, il y a 11 ans


Bonjour,

Je souhaite uploader des documents dans un dossier, mais de choisr la destination par le biais d'un select.
L'upload simple c'est à dire sans le choix de destination par le select s'effectue correctement, comment selectionner la desination dans un dossier via le select, voici le code de la page :
traitement de l'upload :

<?php function upload($index,$destination,$extension=false) { if(empty($_FILES[$index]) || $_FILES['error']>0) { $erreur_upload = 'Une erreur est survenue durant le téléchargement!'; return false; } $ext = strtolower(substr(strrchr($_FILES[$index]['name'], '.'),1)); if($extension != false && !in_array($ext, $extension)) { $erreur_upload = "L'extension ne correspond pas au type souhaité"; return false; } return move_uploaded_file($_FILES[$index]['tmp_name'], $destination.mt_rand(0,1000).'-'.$_FILES[$index]['name']); } if (!empty($_POST['submit'])) { if(upload("documents","documents/",array("pdf","doc","xls","xlsx")) == true) { $success_upload = "Le document a bien été téléchargé!"; } } ?>

Voici mon formulaire :

<form action="accueil.php" method="post" enctype="multipart/form-data"> <label for="document">Choisir une destination</label> <select class="choix-document form-control champ-saisi" name="folder"> <option>document</option> <option>Devis</option> <option>factures</option> </select> <div class="form-group"> <label for="document">Téléchargement de documents</label> <input type="file" class="download" name="documents" id="documents"><br> <input type="submit" name="submit" class="btn btn-primary"> </div> <?php if (isset($erreur_upload)) echo '<span class="error">'.$erreur_upload.'</span>';?> <?php if (isset($success_upload)) echo '<span class="success">'.$success_upload.'</span>';?> </form>

Si quelqu'un peu m'aider, merci

5 réponses

bugland, il y a 11 ans

Il faut que tu récupère la valeur de ton select coté php. Des que tu as envoyer ton formulaire coté php tu devrais avoir la valeur de ton select dans la variable $_POST['folder'] il suffit après de la concaténer à ton chemin de destination.

macinsteph, il y a 11 ans

tu peux me monter comment tu fais ça ... merci

bugland, il y a 11 ans

Dans ta fonction upload fait un echo $_POST['folder'];
Tu comprendras mieux mais avant selectionne bien quelques choses dans ton select normalement tu devrais avoir la valeur qui apparait.

macinsteph, il y a 11 ans

ok je vois bien qu'il selectionne ce que j'ai choisi dans le select. Mon soucis est ou placer le $_POST dans le code pour qu'il le prenne en compte

bugland, il y a 11 ans

Si cela peut t'aider je te donne un exemple en partant du principe que à la racine de ton serveur la ou tu veux déposer le fichier il y ai un dossier 'MonDossier' :

$destination = "MonDossier/"; $nomFichier = "image.jpg"; $destination = $destination . $_POST['folder']."/".$nomFichier; move_uploaded_file($_FILES[$index]['tmp_name'], $destination);

Je résume pour que tu vois le principe.