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
Réponse acceptée

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.

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.

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

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.

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