Bonjour à Tous,

je reviens sur le forum car après quelques tentatives - une fois vingtaine - je ne parviens pas à intégrer deux scripts de téléchargement d'image dans une page d'insertion dans ma base de données comme il conviendrait. Pour confirmation, les deux scripts de gestion des téléchargements que je vais mettre ci-dessous fonctionnent, mais ils ne gèrent pas tels qu'appliqués dans ma page de traitement les conditions du "IF' concernant les format d'image (pour la première image je ne dois en principe télécharger qu'un pdf et pour la seconde qu'un format gif, jpg ou jpg) et je peux donc télécharger n'importe quel format de fichier sur ma page d'accueil ...

Aussi, en second point, je souhaiterais pouvoir enregistrer le chemin vers le répertoire contenant mon fichier téléchargé et non pas simplement le nom du fichier.

Quelqu'un pourrait-il me renseigner sur ce que je dois modifier dans mes scripts ?

Par avance grand merci.

Voici ma page d'ajout de référence - "ajout_gamme" :

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
39
40
41
42
43
44
45
46
47
48
49
50
 
<meta charset="utf-8">
<?php include 'header_01.php'; ?>
<div class="container">
<div class="row">
<div class="span3">
<?php
include 'col-left-co.php';
 
?>
</div>
 
<div class="span9">
<?php
 
if (!isset($_GET['section']) OR $_GET['section'] == 'index')
{
include_once('../../controleur/prod/index.php');
foreach($gammes as $gamme)
{
?>
 
<ul class="thumbnails input.span3">	
<li class="span3" style="margin-left:50px;">
<div class="thumbnail ">
<img src="upload/<?php echo $gamme['Image']; ?>" width="300px" height="300px">
<div class="caption table">
<strong><?php echo $gamme['Reference']; ?> - <?php echo $gamme['Nom_Client']; ?></strong>
<form action="../../modele/prod/traitement_prod_gam.php" method="POST" class="col-lg-6">
<input type="hidden" name="Reference" value="<?php echo $gamme['Reference']; ?>"/>
<input type="hidden" name="Nom_Client" value="<?php echo $gamme['Nom_Client']; ?>"/>
<input type="submit" class="btn btn-success" value="Production"/>
<a class="btn btn-primary" href="produit.php?Reference=<?php echo $gamme['Reference']; ?>&amp;Nom_Client=<?php echo $gamme['Nom_Client']; ?>">Plus d'infos</a>
</form>
</div>
</div>
</li>
</ul>
 
<?php
 
}
}
?>
 
</div>
</div>
<?php
 
include 'footer.php'; ?>
Et voici ma page de traitement pour l'ajout de référence - traitement_gamme :

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
<?php
    header('Refresh: 4; URL= ../../vue/prod/ajout_gamme.php');
 
    // Connexion à la base de données : 
include_once('../connexion_DB.php');
 
    // Les champs du formulaire ont-ils été remplis ?
    if (isset($_POST['Reference'], $_POST['Nom_Client'], $_POST['Description']) && !empty($_POST['Reference'])) 
	{
	//Fichier de la miniature
		$fichier01 = basename($_FILES['Image']['name']);
		$dossier = '../../vue/prod/upload/';
		$extensions = array('.gif', '.jpg', '.jpeg');
		$extension = strrchr($_FILES['Image']['name'], '.'); 
		if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
			{
				 $erreur = 'Vous devez uploader un fichier de type gif, jpg ou jpeg ...';
			}
				if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
				{
				 //On formate le nom du fichier ici...
				 $fichier01 = strtr($fichier01, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
					$fichier01 = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier01);
					if(move_uploaded_file($_FILES['Image']['tmp_name'], $dossier . $fichier01)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
					{
						$req = $bdd->prepare('INSERT INTO Gamme(Image) VALUES(:Image)'); // Evidemment il faut mettre un WHERE .. = .. (car l'image est forcément liée à un utilisateur?)
					}
						else
						{
							echo $erreur;
						}
				}
 
	//pdf de la gamme
 
	$fichier02 = basename($_FILES['Gamme']['name']);
	$dossier = '../../vue/prod/upload/';
	$extensions = array('.pdf');
	$extension = strrchr($_FILES['Gamme']['name'], '.'); 
	if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
			{
				 $erreur = 'Vous devez uploader un pdf uniquement ...';
			}
				if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
				{
					 //On formate le nom du fichier ici...
					 $fichier02 = strtr($fichier02, 
						  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
						  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
					$fichier02 = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier02);
					if(move_uploaded_file($_FILES['Gamme']['tmp_name'], $dossier . $fichier02)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
					{
						$req = $bdd->prepare('INSERT INTO Gamme(Gamme) VALUES(:Gamme)'); // Evidemment il faut mettre un WHERE .. = .. (car l'image est forcément liée à un utilisateur?)
					}
						else
						{
							 echo $erreur;
						}
}
        // Formatage du nom de la Gamme : 
        $Reference = strtoupper($_POST['Reference']);
		$Nom_Client = strtoupper($_POST['Nom_Client']);
		$Description = strtoupper($_POST['Description']);
		$Gamme = array($fichier02);
		$Image = array($fichier01);
 
        $req = $bdd->prepare("SELECT * FROM gamme WHERE Reference = :Reference");
        $req->execute(array('Reference' => $Reference));
        $count = $req->rowCount();
 
        if($count){
            $message = "La Gamme $Reference fait déjà parti de la base de données, elle n'a donc pas été ajoutée !";
        } else {
			$req = $bdd->prepare("INSERT INTO gamme (Reference, Nom_Client, Description, Gamme, Image) 
			VALUES (:Reference, :Nom_Client, :Description, :Gamme, :Image)");
			$req->execute(array(
                'Reference' => $_POST['Reference'],
                'Nom_Client' => $_POST['Nom_Client'],
                'Description' => $_POST['Description'],
				'Gamme' => $fichier02,
                'Image' => $fichier01
            ));
 
            $message = nl2br("La gamme <strong>$Reference</strong> a bien été enregistrée dans la base de données.
            Voici le détail:

            Référence : $Reference
			Nom : {$_POST['Nom_Client']}
            Description : {$_POST['Description']}

            Vous allez être redirigé à la page précédente...");
        }
    }
	else 
	{
        $message = nl2br("Un problème est survenu votre Gamme n'a pas été enregistrée.
        Vous allez être redirigé à la page précedente...");
    }
 
    if(isset($message))
	{ 
        echo $message; 
    }
?>