Bonjour,

Pour les besoins d'un site, je cherche à créer un formulaire permettant d'enregistrer des données dans une base de données ainsi que d'uploader des fichiers.

Côté données (nom, description...) de ce que j'ai déjà réalisé, ça marche. Le problème vient de l'upload. En effet, lorsque j'envoie mon formulaire, dans la base de données sont enregistrés le nom de ma course, sa description et l'image choisi. Cependant, l'image ne va pas dans le dossier destinataire comme je lui demande. Je sais pas si c'est parce que j'ai raté un truc, ou que je n'ai pas compris lesquels code que j'ai trouvé sur le net, mais vu que c'est sensé fonctionner je ne suis pas sûr de comprendre pourquoi ça ne fonctionne pas.

Voici le formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
<form method="post" action="">
        <div id="addEvent">
            <label>Titre : </label><input type="text" id="textTitre" name="textTitre"></br></br>
            <label>Description : </label></br>
            <textarea type="text" id="textDescr" name="textDescr" class="ckeditor"></textarea></br></br>
            <form method="POST" action="uploadImageV3.php" enctype="multipart/form-data" id="formImg" target="_blank">
                <label>Charger une image : </label>
                    <input type="file" name="avatar" id="addImg"/></br></br>
            </form>
            <label>Charger le réglement (.pdf) : </label><input type="file" name="addReg" id="addReg"/></br></br>
            <input type="submit" value="Ajouter" ><a href="mes-evenements"><input type="button" value="Annuler"></a>
        <?php
        $titre          = $_POST['textTitre'];
        $desc           = $_POST['textDescr'];
        $img            = $_POST['avatar'];
        $reg            = $_POST['addReg'];
        $pasDeFichier   = "";
 
        $event=new Org_Events($titre, $desc, $img, $reg);
        $pdo->addEvent($event);
 
        ?>
 
        </div>
</form>
La requête addEvent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public function addEvent($unEvent)
    {
        try
        {
            $req = 'INSERT INTO evenement (nom, description, image)
            VALUES (:pnom, :pdescr, :pimage)';
            echo $req;
            $prep = PdoOrg::$monPdo->prepare($req);
            $prep->bindValue(':pnom', $unEvent->getTitre(), PDO::PARAM_STR);
            $prep->bindValue(':pdescr', $unEvent->getDescription(), PDO::PARAM_INT);
            $prep->bindValue(':pimage', $unEvent->getImage(), PDO::PARAM_INT);
            $prep->execute(); 
            $prep = NULL;
        }   
        catch (PDOException $uneException) {
            echo "ERREUR : " . $uneException->getMessage();
        }
    }
Et mon uploadImageV3.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<?php
$dossier = 'uploadTemp/imgEvent/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>
Merci d'avance pour vos réponses