Rechercher : dans
Par :

Probleme renommer un fichier en PHP

Dernière réponse le 13 nov 2008 à 21:57:27 fr, le 19 fév 2007 à 11:03:45 
 Signaler ce message aux modérateurs

Salut a tous!
voila, je souhaite uploader des images sur mon FTP via un formulaire puis automatiquement les renommés en les incrémentants.
J'ai donc fais mon formulaire, creer une page php qui va traiter les informations pour l'uploader sur le serveur. Jusque la tout fonctionne correctement, mais pour renommer les fichiers, sa marche pô!




Code : PHP
$tableau="";
$nbr_img=0;
$handle=@opendir("upload");
while ($fichier = @readdir($handle))
{
$extension=substr($fichier,-3);

if($fichier!="." && $fichier!=".." && (eregi("gif",$extension) || eregi("jpg",$extension) || eregi("png",$extension)))
{
$listing[$fichier]=$nbr_img;
}
$nbr_img++;
}
$nbr_img =($nbr_img-2);


ce code me permet de scanner le dossier d'upload.





Code : PHP

$nom = $_FILES['fichier']['name'];
$nbre_image = $nbr_img++;

if(@rename("/upload/" . $nom . " ", "/upload/" . $nbre_image . ""))
{
echo "l'image a été renommer";
}
else
{
echo "l'image n'a pas été renommer. ";
}

Ici, c'est le script qui est censé renommer les fichier uploader et l'incrémenter en fonction du nombre de fichier se trouvant dans le dossier d'upload.




Donc, en gros, le fichier s'upload bien dans le bon dossier, mais le fichier n'est pas renommer. Je ne sais pas d'ou peut venir ce probleme.
Je n'est testé qu'en local, je ne sais pas si ça peut venir de la mais bon...si quelqu'un sais...

Meilleures réponses pour « Probleme renommer un fichier en PHP » dans :
[Webmaster] Afficher facilement le code php/xhtml de vos pages VoirSi vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions. En php Afficher le code php Afficher le code html En html Informations Voir aussi En php Afficher le code php La...
Il est possible de récupérer le code source PHP d'un site VoirMythe Un utilisateur peut récupérer le code source PHP d'un site web comme il peut récupérer le code HTML. Réalité FAUX Explications Les fichiers PHP (ASP, JSP, etc.) sont des fichiers interprétés côté serveur, ce qui signifie que le serveur...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Génération d'images VoirPrérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...

1

GallyNet, le 20 fév 2007 à 09:17:51

Ton probleme vient tout simple que $_FILES['fichier']['name'] ne contient pas le nom du fichier tel qu'il est sur le serveur, mais le nom du fichier avant l'envoie.
Car PHP, enregistre le fichier sous un nom temporaire, dans un repertoire temporaire.
Il faut donc faire :

if(@rename($_FILES['fichier']['tmp_name'], "/upload/" . $nbre_image . "")) 

Répondre à GallyNet

2

 polygon, le 13 nov 2008 à 21:57:27

Bonjour,

Voici un code pour créer un fichier sur le serveur et le renomer.
Je crée un fichier temporaire .temp sur le serveur en lui indiquant son dossier que j'ai crée et qui sera definitif.
Le fichier sera aussitot renomer en .php avec la fonction rename().
J'écris dans ce fichier <?php include("page.inc.php"); ?> qui ne sera que du texte au moment de l'écriture mais
losque j'appelerai ce fichier qui sera renomer avec une variable de session issue d'un formulaire par exemple "chemin/".$variableDeSession.".php" il m'affichera ce que contient page.inc.php

ce code marche bien sur wamp et chez mon hebergeur.

$tmpfile = tempnam(realpath("chemin/"), "nomfichierTemporaire") ;
$fp = fopen($tmpfile, "w");
fwrite($fp, '<?php include("page.inc.php"); ?>');
$fichier=$tmpfile;
fclose($fp);
rename("".$fichier."","chemin/".$variableDeSession.".php");

Répondre à polygon