TYBMHI Posté 5 Avril 2009 Partager Posté 5 Avril 2009 Bonjour à tous, J'aimerais rajouter la date à la fin du nom d'une image uploadée mais je ne sais pas comment faire. Voilà ce que j'ai : <form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST"><input type="hidden" name="posted" value="1"><input type="hidden" name="annonce" value="<?php echo $annonce;?>"><input type="hidden" name="minute" value="<?php echo $date;?>"><input name="fichier" type="file"><input type="submit" value="Uploader"></form><?php//--------------------------------------// DEFINITION DES VARIABLES//--------------------------------------$target = "files/"; // Repertoire cible$max_size = 100000; // Taille max en octets du fichier$width_max = 205; // Largeur max de l'image en pixels$height_max = 155; // Hauteur max de l'image en pixels$extensions_ok = array("jpg","gif","png","jpeg");//------------------------------------------------------------// DEFINITION DES VARIABLES LIEES AU FICHIER//------------------------------------------------------------$nom_file = $_FILES['fichier']['name'];$taille = $_FILES['fichier']['size'];$tmp = $_FILES['fichier']['tmp_name'];$chemin = $target.$_FILES['fichier']['name'];$extension = substr($nom_file,-3); // Récupération de l'extension//---------------------------// SCRIPT D'UPLOAD//---------------------------if($_POST['posted']){// On vérifie si le champ est rempli if($_FILES['fichier']['name']) { // On vérifie l'extension du fichier if(in_array(strtolower($extension),$extensions_ok)) { // On récupère les dimensions du fichier $infos_img = getimagesize($_FILES['fichier']['tmp_name']); // On vérifie les dimensions et taille de l'image if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($taille <= $max_size)) { // Si c'est OK, on teste l'upload if(move_uploaded_file($tmp,$chemin)) { // Si upload OK alors on affiche le message de réussite echo '<p>Image uploadée avec succès !</p>'; echo '<ul><li>Fichier : '.$_FILES['fichier']['name'].'</li>'; echo '<li>Taille : '.$_FILES['fichier']['size'].' Octets</li>'; echo '<li>Largeur : '.$infos_img[0].' px</li>'; echo '<li>Hauteur : '.$infos_img[1].' px</li></ul>'; la variable date est défini plus haut. Je ne sais pas comment l'insérer dans le nom du fichier. Merci d'avance pour votre précieuse aide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
SStephane Posté 5 Avril 2009 Partager Posté 5 Avril 2009 (modifié) Le champs date, même en hidden, c'est pas vraiment une bonne idée, surtout s'il intervient sur ton nom de fichier. (c'est pas parce que ton formulaire est en POST qu'il est plus sécurisé qu'en GET) fais un truc du genre : if(is_uploaded_file($tmp)){ //ici quelques vérifications de sécurité rename($tmp,$target.strftime("%Y-%m-%d").$_FILES['fichier']['name']);} strftime("%Y-%m-%d") pour insérer une date de type YYYY-MM-DD Si tu souhaites mettre une date, met la plutôt au début du nom de fichier, et de cette forme, tes fichiers seront ainsi facilement "triables" et identifiables par un être humain dans un dossier. (Après c'est toi qui voit ) Stéphane Modifié 5 Avril 2009 par SStephane Lien vers le commentaire Partager sur d’autres sites More sharing options...
b0b0 Posté 5 Avril 2009 Partager Posté 5 Avril 2009 (modifié) Salut, (oups, le temps que je poste, Stéphane a donné une réponse... je suis d'accord avec sa méthode de mettre la date AVANT... pour ordonner plus facilement les fichiers et aussi pour le fait que la date doit être définie au vol par PHP et non via une donnée modifiable dans le formulaire d'envoi! ) ----- Voila ce que je ferais (toujours avec la date a la fin du fichier comme demandé plus haut): 1/modification de la détection de l'extension et la mettre en 1er dans la section variables.... car pour l'instant, elle ne prend que les 3 derniers caractères.... (il pourrait y en avoir 4), sans compter que cette méthode ne vérifie pas la présence du . dans le nom de fichier ... Quelqu'un pourrait uploader un fichier "nimportequoijpg" donc au lieu de : $extension = substr($nom_file,-3); // Récupération de l'extension mettre cela : $extA = explode('.',$nom_file); $extension = $extA[count($extA)-1]; et dans ce cas, on ne prend que les X lettres après le dernier point, et c'est déjà plus une "extension" 2/Rajouter la date... d'abord on prend que la 1ere partie du nom... $nom_court = substr($_FILES['fichier']['name'],0,strlen($_FILES['fichier']['name'])-strlen($extension)-1); ensuite on recontruit le nom du fichier en y incluant la date $chemin = $target.$nom_court.'-'.date('ddmmYYYY').'.'.$extension; donc en finale : //------------------------------------------------------------// DEFINITION DES VARIABLES LIEES AU FICHIER//------------------------------------------------------------// Récupération de l'extension en 1er, car on s'en servira plus tard$extA = explode('.',$nom_file);$extension = $extA[count($extA)-1];$nom_file = $_FILES['fichier']['name'];$taille = $_FILES['fichier']['size'];$tmp = $_FILES['fichier']['tmp_name'];//d'abord on prend que la 1ere partie du nom...$nom_court = substr($_FILES['fichier']['name'],0,strlen($_FILES['fichier']['name'])-strlen($extension)-1);//ensuite on recontruit le nom du fichier en y incluant la date$chemin = $target.$nom_court.'-'.date('ddmmYYYY').'.'.$extension; En espérant que ça marche ... (je n'ai pas testé mais théoriquement c'est ça!) b0b0 Modifié 5 Avril 2009 par b0b0 Lien vers le commentaire Partager sur d’autres sites More sharing options...
TYBMHI Posté 5 Avril 2009 Auteur Partager Posté 5 Avril 2009 Merci beaucoup à tous les deux je vais faire les tests et je vous tient au courant. Lien vers le commentaire Partager sur d’autres sites More sharing options...
SStephane Posté 7 Avril 2009 Partager Posté 7 Avril 2009 Au passage, ma copine affectionne particulièrement ton site tous-des-cons Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant