IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Renommer automatiquement un fichier uploadé


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 19
    Points : 8
    Points
    8
    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 : 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>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous ce que tu as essayé pour la routine de renommage et on pourra t'aider a la corriger.

  3. #3
    Membre actif Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Points : 296
    Points
    296
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$_FILES['fichier']['name'])
    Bon maintenant tu fois que tu peux très bien remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['fichier']['name']
    par le nom que tu veux donner a ton image

  4. #4
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [MySQL] REnommer automatiquement des photos uploader
    Par Cuoreconleali dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/06/2010, 09h34
  2. [Upload] Suppression auto des fichiers uploadés
    Par silver.spike dans le forum Langage
    Réponses: 5
    Dernier message: 09/03/2007, 11h27
  3. renommer automatiquement un fichier
    Par shnouf dans le forum Langage
    Réponses: 11
    Dernier message: 21/11/2006, 14h51
  4. [Upload] Où vont mes fichiers uploadés ?
    Par adlich dans le forum Langage
    Réponses: 3
    Dernier message: 30/04/2006, 22h52
  5. [Upload] Type MIME de fichiers à uploader
    Par franculo_caoulene dans le forum Langage
    Réponses: 6
    Dernier message: 27/10/2005, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo