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
</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<--
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.