S'abonner :  Newsletters    Magazines
Avis sur les produits Avis sur les logiciels Avis sur les jeux Actualités A propos de 01net
609 utilisateurs connectés

[Résolu] Rename d'un fichier uploadé

Harribo le 05 octobre 2008 à 22h30
Bonjour dans le cadre d'un projet pour mes études, je dois uploadé des fichiers sur un serveur et les renommer, afin de les utiliser pour une BDD

voici mon code:
<!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 StrictEN" "http:www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http:www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>héhé</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
mettre le dossier de reception dans le même dossier ou se trouve la page php

<body>
<fieldset>



<form method="post" enctype="multipart/form-data" action="upload.php">
<p>
<input type="file" name="fichier" size="30">

</p>

</form>

<form method="post" action="upload.php">
<p>
<input type="text" name="renom" size="30">

</p>
<input type="submit" name="upload" value="uploader et renommer">
</form>

</fieldset>



<?php

if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'upload/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES['fichier']['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];

if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
}

// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

echo "Le fichier a bien été uploadé";


}
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$nomFichier = $_FILES['fichier']["name"];
$NewNomFichier = $_POST[renom];
rename($content_dir.$nomFichier, $content_dir.$NewNomFichier);



?>

</body>
</html>

j'obtiens :
Warning: rename(upload/wallpaper_joker_1600.jpg,upload/) [function.rename]: File exists in C:\Program Files\wamp\www\Er2008\upload.php on line 64


que dois-je faire pour qu'au moment d'uploader un fichier, je puisse le renommer ?

Merci


-->Message édité par Harribo le 07/10/2008 19:29:33<--
QuiPhenix le 06 octobre 2008 à 13h17
Bonjour,

Selon le message d'erreur, le problème est simplement que le fichier existe déjà ... il n'est donc pas possible de le renommer avec le même nom qu'un fichier existant déjà ...

2 solutions: utiliser un nom de fichier qui n'existe pas (en générant un chiffre aléatoire tant qu'on obtient une erreur par exemple en utilisant le code de retour du rename()) ou supprimer simplement le fichier qui a déjà ce nom grâce à la fonction unlink() ...
Après, à vous de voir selon les utilisations.
-------
[:QuiPhenix:3]
Harribo le 07 octobre 2008 à 19h29
Bonjour, merci de votre réponse.

J'ai regardé après quelques heures de repos.
En fait j'ai mis dans mes formulaires, 2 <form> au lieu d'un et forcément ca ne fonctionnait pas ^^

voilà maintenant ca fonctionne :D


PRODUITS

TÉLÉCHARGER - LOGICIELS

JEUX VIDÉOS

LOISIRS

01NET PRO

AVIS ET COMMENTAIRES

A PROPOS DE 01NET

publicité
> NOUVEAU: Norton Antivirus 2010
Essayez l'antivirus le plus léger du marché.

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.