Page 1 sur 1

Upload file!!!

Posté : 30 mai 2013, 22:59
par ouiiou
Bonjour à tous!
Comment de changer le nom du fichier quand on le telecharger vers le serveur. Parce que je veux telecharger beaucoup de fichier identiques vers un répertoire du serveur.
Voici c'est mon fichier cible.php
<?php
         // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
         if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
         {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['monfichier']['size'] <= 1000000)
            {
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                //foreach($infosfichier as $a) echo $a .'<br/>';
                $extension_upload = $infosfichier['extension'];
                //echo $extension_upload .'<br/>';
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
                   // On peut valider le fichier et le stocker définitivement
                   //tmp_name est pour remplacher le fichier est entrain d'attendre sur le repertoire temporaire du serveur a l'autre repertoire.
                   //$fichier = basename($_FILES['monfichier']['name']);
                   $fichier = $infosfichier['filename'] .date(d).date(m).date(Y).date(H).date(i).date(s).'.'.$extension_upload;
                   $fichier = strtr($fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                   //echo $fichier .' avec path = ' .$_FILES['monfichier']['tmp_name'] .'<br/>';
                   $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
                   echo $fichier .'<br/>';
                   move_uploaded_file($_FILES['monfichier']['tmp_name'], '../Uploads/' .$fichier);
                   echo "L'envoi a bien été effectué !";
                }
            }
         }
 ?>
Mais le nom du fichier qui est telecharger ne changeait pas! Et l'ancien était écrasé. Merci d'avance!

Re: Upload file!!!

Posté : 30 mai 2013, 23:15
par ghost5922
Bonjour,

sur cette ligne
move_uploaded_file($_FILES['monfichier']['tmp_name'], '../Uploads/' .$fichier);
move_uploaded_file("fichier temporaire","le future nom du fichier");

donc tu dois modifier '../Uploads/'.$fichier par '../Uploads/le nom du fichier que tu veux.'.$extension_upload

Re: Upload file!!!

Posté : 30 mai 2013, 23:17
par ouiiou
tu vois dans mes codes. J'ai changé dèja le variables $fichier comme :
$fichier = $infosfichier['filename'] .date(d).date(m).date(Y).date(H).date(i).date(s).'.'.$extension_upload; 

Re: Upload file!!!

Posté : 30 mai 2013, 23:20
par ghost5922
Ok alors j'ai pas compris ta demande du coup avec cette ligne
$fichier = $infosfichier['filename'] .date(d).date(m).date(Y).date(H).date(i).date(s).'.'.$extension_upload;
tu récupère le nom du fichier + date + extension

tu veux pouvoir les gardes en mémoire ? si oui tu peux les mettre en base de donnée

Re: Upload file!!!

Posté : 30 mai 2013, 23:26
par ouiiou
Oui, c'est ca, je veux les mettre dans une base de données. Mais je comprends pas pourquoi l'encien etait écrasé. Et le nom du fichier ne changait pas Malgré que j'ai changé le code comme ca:
move_uploaded_file($_FILES['monfichier']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/Uploads/' .'aaaa');
pour tester.

Re: Upload file!!!

Posté : 30 mai 2013, 23:29
par ghost5922
Ok si le nom du fichier d'importe peux utilise directement la fonction time();
<?php
         // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
         if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
         {
            // Testons si le fichier n'est pas trop gros
            if ($_FILES['monfichier']['size'] <= 1000000)
            {
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                //foreach($infosfichier as $a) echo $a .'<br/>';
                $extension_upload = $infosfichier['extension'];
                //echo $extension_upload .'<br/>';
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                if (in_array($extension_upload, $extensions_autorisees))
                {
                   // On peut valider le fichier et le stocker définitivement
                   //tmp_name est pour remplacher le fichier est entrain d'attendre sur le repertoire temporaire du serveur a l'autre repertoire.
                   //$fichier = basename($_FILES['monfichier']['name']);
                   $fichier = $infosfichier['filename'] .time().'.'.$extension_upload;
                   $fichier = strtr($fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                   //echo $fichier .' avec path = ' .$_FILES['monfichier']['tmp_name'] .'<br/>';
                   $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
                   echo $fichier .'<br/>';
                   if(move_uploaded_file($_FILES['monfichier']['tmp_name'], '../Uploads/' .$fichier)){
                   	echo "L'envoi a bien été effectué !";
					//ici tu insert en base de donne
				   }
				   else{
						echo'Erreur';   
				   }
                }
            }
         }
 ?>

Re: Upload file!!!

Posté : 30 mai 2013, 23:40
par ouiiou
Le fichier vieux etait encore écrasé. Et dans le navigateur, il s'affichait le message "Erreur".

Re: Upload file!!!

Posté : 31 mai 2013, 00:13
par ouiiou
Ca marche! Je te remercie bien! ghost5922

Re: Upload file!!!

Posté : 31 mai 2013, 07:31
par ghost5922
Bonjour,

si tu pense que ton problème et réglé merci de mettre ton sujet en résolu merci