Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2008, 14h11   #1
Invité de passage
 
Inscription : août 2008
Messages : 13
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 13
Points : 1
Points : 1
Par défaut [Upload] Renommer automatiquement un fichier uploadé

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 :
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>
eilarod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2008, 23h04   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Montre nous ce que tu as essayé pour la routine de renommage et on pourra t'aider a la corriger.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2008, 23h13   #3
Membre confirmé
 
Avatar de frol
 
Inscription : mars 2005
Messages : 288
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mars 2005
Messages : 288
Points : 268
Points : 268
Envoyer un message via AIM à frol Envoyer un message via MSN à frol Envoyer un message via Skype™ à frol
En fait c'est assez simple
l'idée est que l'image uploadée va se taper dans un fichier temporaire
et toi quand tu as fait tes tests tu dis on peut mettre le fichier dans le dossier ou je veux qu'il soit
c'est le rôle de
Code :
move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$_FILES['fichier']['name'])
Bon maintenant tu fois que tu peux très bien remplacer
Code :
$_FILES['fichier']['name']
par le nom que tu veux donner a ton image
frol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2008, 12h07   #4
Modérateur
 
Avatar de SirDarken
 
Eric Willems
Développeur Web
Inscription : février 2004
Messages : 895
Détails du profil
Informations personnelles :
Nom : Eric Willems
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services de proximité

Informations forums :
Inscription : février 2004
Messages : 895
Points : 1 065
Points : 1 065
Envoyer un message via MSN à SirDarken Envoyer un message via Skype™ à SirDarken
Code :
1
2
3
 
$nommini = "../photo/tmp_{$ar_ref}{$extension}";
move_uploaded_file($_FILES['gar_photo']['tmp_name'],$nommini)
Ca envoie l'image dans le repertoire photo de mon site (les ../ sont du au faite que le code ce trouve sous racine_du_site/admin )
en le nommant tmp_reférence+extension (car je gère l'upload des png,gif et jpg)

Si tu veux plus d'informations n'hesite pas.
SirDarken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web