Bonjour a tous,

Voilà, je debute en php, j'ai trouvé se script d'upload qui marche parfaitement bien. Mais le seul hic, c'est qu'il de renomme pas les fichiers uploadés, c'est a dire le fichier copié qui se trouvera sur le serveur.

J'aimerai une renomination automatique pour eviter les espaces, les accents et l'ecrasement des fichiers existant de meme nom. En gros le premier fichier uploadé sera renomé : moi.jpg ===> photo001.jpg, le second dédé.jgp ==> photo002.jpg, le troisieme : photo001.jpg ===> photo003.jpg, ect......

J'aimerai également que l'on puisse voir les fichiers deja uploadé via CE formulaire (un petit aperçu de la photo deja uploadé quoi).

J'ai passé des heur a chercher, a bidouillé, a suprimr, recommencer...

Je demande a une ame charitable de m'aider ou de modifier le code pour que cela fonctionne !!


Ce script est il bien securisé au faite?

Merci!



Le code :

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
 
// Constantes
define('TARGET', 'photos/');		// Repertoire cible
define('MAX_SIZE', 100000);		// Taille max en octets du fichier
define('WIDTH_MAX', 800);		// Largeur max de l'image en pixels
define('HEIGHT_MAX', 800);		// Hauteur max de l'image en pixels
// Tableaux de donnees
$tabExt = array('jpg','gif','png','jpeg');    // Extensions autorisees
$infosImg = array();
// Variables
$extension = null;
$message = null;
 
	//Creation du repertoire cible si inexistant
        if( !is_dir(TARGET) ) {
	if( !mkdir(TARGET, 0700) ) {
		exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !');
	}
}
//Script d'upload
  if($_POST)
{
  // On verifie si le champ est rempli
  if( !empty($_FILES['fichier']['name']) )
  {
	// Recuperation de l'extension du fichier
	$extension	= pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION);
 
    // On verifie l'extension du fichier
    if(in_array(strtolower($extension),$tabExt))
    {
        // On recupere les dimensions du fichier
        $infosImg = getimagesize($_FILES['fichier']['tmp_name']);
 
        // On verifie le type de l'image
        if($infosImg[2] >= 1 && $infosImg[2] <= 14)
        {
			// On verifie les dimensions et taille de l'image
			if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE))
			{
				// Si c'est OK, on teste l'upload
				if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$_FILES['fichier']['name']))
				{
 
 
 
 
 
 
 
 
 
 
	// Message de reussite
					$message = 'Upload réussi !';
				}
				   else
				{
					// Sinon on affiche une erreur systeme
					$message = 'Problème lors de l\'upload !';
				}
			}
			  else
			{
				// Sinon erreur sur les dimensions et taille de l'image
				$message = 'Erreur dans les dimensions de l\'image !';
			}
        }
          else
        {
            // Sinon erreur sur les dimensions et taille de l'image
            $message = 'Le fichier à uploader n\'est pas une image !';
        }
    }
      else
    {
        // Sinon on affiche une erreur pour l'extension
        $message = 'L\'extension du fichier est incorrecte !';
    }
   }
    else
   {
        // Sinon on affiche une erreur pour le champ vide
        $message = 'Veuillez remplir le formulaire svp !';
   }
}
 
?>
//Formulaire XHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
	<head>
		<title>Upload d'une image sur le serveur !</title>
	</head>
	<body>
		<?php
			if( !empty($message) ) {
				echo '<p>',"\n";
				echo "\t\t<strong>", htmlspecialchars($message) ,"</strong>\n";
				echo "\t</p>\n\n";
			}
		?>
		<!-- Debut du formulaire -->
		<form enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
			<fieldset>
				<legend>Formulaire</legend>
					<p>
						<label for="fichier_a_uploader" title="Recherchez le fichier à uploader !">Envoyer le fichier :</label>
						<input type="hidden" name="posted" value="1" />
						<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" />
						<input name="fichier" type="file" id="fichier_a_uploader" />
						<input type="submit" name="submit" value="Uploader" />
					</p>
			</fieldset>
		</form>
		<!-- Fin du formulaire -->
	</body>
</html>