Rename()
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
Le code ci-dessous me crée un dossier et renomme le fichier uploader... cependant je rencontre un soucis :
Si le dossier n'existe pas, le script le crée et renomme bien le fichier.
Mais si le dossier existe, il ne le renomme plus... est-ce normal ?
Merci de votre coup de main.
Le code ci-dessous me crée un dossier et renomme le fichier uploader... cependant je rencontre un soucis :
$PathImage = '../../../images/produits/'; if(!is_dir($PathImage)){mkdir($PathImage, 0705, true);} $_FILES['Fr_Image']['name']; $_FILES['Fr_Image']['type']; $_FILES['Fr_Image']['size']; $_FILES['Fr_Image']['tmp_name']; $_FILES['Fr_Image']['error']; if ($_FILES['Fr_Image']['error'] > 0) $erreur = "<div class=\"Erreur\">Erreur lors du transfert de l'image</div>"; if ($_FILES['Fr_Image']['size'] > $maxsize) $erreur = "<div class=\"Erreur\">Le fichier est trop gros</div>"; $extensions_valides = array('png'); $extension_upload = strtolower(substr(strrchr($_FILES['Fr_Image']['name'], '.') ,1) ); if (in_array($extension_upload,$extensions_valides) ) echo "<div class=\"Message\">Extension de l'image correcte</div><br />"; $image_sizes = getimagesize($_FILES['Fr_Image']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) $erreur = "<div class=\"Erreur\">Image trop grande</div>"; $nom = $PathImage.$_FILES['Fr_Image']['name']; $resultat = move_uploaded_file($_FILES['Fr_Image']['tmp_name'],$nom); $NouvImage = $PathImage.$Fr_Code.".".$extension_upload; rename($PathImage.$nom, $PathImage.$NouvImage); if ($resultat) echo "<div class=\"Message\">Transfert de l'image réussi</div><br />";
Si le dossier n'existe pas, le script le crée et renomme bien le fichier.
Mais si le dossier existe, il ne le renomme plus... est-ce normal ?
Merci de votre coup de main.
A voir également:
- Rename()
- Lupas rename - Télécharger - Gestion de fichiers
- A-pdf rename - Télécharger - PDF
- The rename - Télécharger - Gestion de fichiers
- A better finder rename - Télécharger - Divers Utilitaires
- Tag&rename - Télécharger - Catalogage
2 réponses
Salut,
Si le dossier existe mais qu'il n'a pas été créé par ton script, le problème peut venir des droits appliqués au dossier. Si le dossier a été créé par ton script cela ne devrait pas poser problème.
Ta variable $NouvImage est affectée en commençant par $PathImage :
Puis lors de l'utilisation de cette variable dans la fonction rename(), tu concatènes une nouvelle fois $PathImage :
Le chemin n'est donc pas correct.
Tu aurais dû avoir un message d'erreur PHP te l'indiquant, n'oublie pas d'activer l'affichage des erreurs en développement.
Enfin, la fonction move_uploaded_file() revient déjà à renommer le fichier temporaire uploadé, tu peux donc directement renommer le fichier avec cette fonction à la place d'utiliser rename() :
Bonne journée
Si le dossier existe mais qu'il n'a pas été créé par ton script, le problème peut venir des droits appliqués au dossier. Si le dossier a été créé par ton script cela ne devrait pas poser problème.
Ta variable $NouvImage est affectée en commençant par $PathImage :
$NouvImage = $PathImage.$Fr_Code.".".$extension_upload; // soit : $NouvImage = '../../../images/produits/' . $Fr_Code.".".$extension_upload;
Puis lors de l'utilisation de cette variable dans la fonction rename(), tu concatènes une nouvelle fois $PathImage :
rename($PathImage.$nom, $PathImage.$NouvImage); // soit : rename($PathImage.$nom, '../../../images/produits/' . '../../../images/produits/' . $Fr_Code.".".$extension_upload);
Le chemin n'est donc pas correct.
Tu aurais dû avoir un message d'erreur PHP te l'indiquant, n'oublie pas d'activer l'affichage des erreurs en développement.
Enfin, la fonction move_uploaded_file() revient déjà à renommer le fichier temporaire uploadé, tu peux donc directement renommer le fichier avec cette fonction à la place d'utiliser rename() :
$NouvImage = $PathImage.$Fr_Code.".".$extension_upload; $resultat = move_uploaded_file($_FILES['Fr_Image']['tmp_name'], $NouvImage);
Bonne journée