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 :
[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...
Renommer plusieurs fichiers en batch VoirLe fait de renommer un grand nombre de fichiers peut très vite devenir fastidieux. Heureusement, il existe des outils permettant d'automatiser cette tâche dans un grand nombre de cas : Fonctionnalités natives Utilisation d'un programme...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
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...

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