PHP Renommer un fichier uploadé

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

PHP Renommer un fichier uploadé

Message le Lun Mar 05, 2007 15:20

Bonjour,

voici mon script d'upload un peu bidouillé je l'avoue mais il fonctionne:

Code: Tout sélectionner
<?php
// recuperation des données du formulaire
if(isset($_POST['poste']))                $poste=$_POST['poste'];
else      $poste="";

if(isset($_POST['mr']))                   $mr=$_POST['mr'];
else      $mr="";

if(isset($_POST['nom']))                  $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['prenom']))               $prenom=$_POST['prenom'];
else      $prenom="";

if(isset($_POST['adresse']))              $adresse=$_POST['adresse'];
else      $adresse="";

if(isset($_POST['cp']))                   $cp=$_POST['cp'];
else      $cp="";

if(isset($_POST['ville']))                $ville=$_POST['ville'];
else      $ville="";

if(isset($_POST['email']))                $email=$_POST['email'];
else      $email="";

if (isset($_FILES['upload']))
{
//$_FILES existe on récupère les infos qui nous intéressent
$upload=$_FILES['upload']['name'];//nom réel de l'image
$size=$_FILES['upload']['size']; //poids de l'image en octets
$tmp=$_FILES['upload']['tmp_name'];//nom temporaire de l'image (sur le serveur)
$type=$_FILES['upload']['type'];//type de l'image
//On récupère la taille de l'image
list($width,$height)=getimagesize($tmp);
if (is_uploaded_file($tmp)) //permet de vérifier si le upload a été uplodé via http
{
//vérification du type de l'img, son poids et sa taille
if ($type="data/doc" && $size<=10000000 && $width<=100000 && $height<=100000 )
{
// type mime gif, poids < à 20500 octets soit environ 20Ko, largeur = hauteur = 100px
//Pour supprimer les espaces dans les noms de uploads car celà entraîne une erreur lorsque vous voulez l'afficher
$upload = preg_replace ("` `i","",$upload);//ligne facultative :)
//On vérifie s'il existe une image qui a le même nom dans le répertoire
if (file_exists('./upload/'.$upload))
{
//Le upload existe on rajoute dans son nom le timestamp du moment pour le différencier de la première (comme cela on est sûr de ne pas avoir 2 images avec le même nom :) )
$nom_final= preg_replace("`.doc`is",date("Y-m-d-H-i-s").".doc",$upload);
}
else {
$nom_final=preg_replace("`.doc`is",date("Y-m-d-H-i-s").".doc",$upload);  //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
move_uploaded_file($tmp,'./upload/'.$nom_final);
//Message indiquant que tout s'est bien passé
echo "Votre document nous est bien parvenu!<br/>";
}
else {
//Le type mime, ou la taille ou le poids est incorrect
echo 'Votre image a été rejetée (poids, taille ou type incorrect)';
}
}
}
?>


actuellement je reçcois le fichier sous la forme nomduficieroriginal+date et
je sohaiterais modifier le nom du fichier uploadé par $nom$prenom.doc


avez-vous une idée??


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Message le Lun Mar 05, 2007 15:42

Salut, c'est ici que ça se passe :

Code: Tout sélectionner
move_uploaded_file($tmp,'./upload/'.$nom_final);


il te suffit de donner la valeur $nom.$prenom à $nom_final...


webac
WRInaute impliqué
WRInaute impliqué
 
Messages: 359
Inscription: Ven Mar 04, 2005 17:30

Message le Lun Mar 05, 2007 15:53

salut biscuit et merci pour ta réponse juste une autre petite question le nom final est bien $nom$prenom mais je n'ai pas l'extension est-ce normal?

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Lun Mar 05, 2007 15:58

$nom_final=$nom.$prenom.".doc";

Assure toi de l'unicité du nom : les homonymes, ça existe :wink:


biscuit
WRInaute passionné
WRInaute passionné
 
Messages: 519
Inscription: Lun Juin 05, 2006 10:37

Message le Lun Mar 05, 2007 16:00

Oui c'est normal que tu n'aies pas l'extension, il faut la récupérer d'abord:

Code: Tout sélectionner
$extension=strrchr($tmp,'.');
$extension=substr($extension,1) ;


et ensuite ton nom de fichier sera:

Code: Tout sélectionner
$fichier = $nom . $prenom . $extension;


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités