Modifier le nom d'un fichier lors d'un upload

Répondre
bryandu08
le 21/08/2008 à 19:06
bryandu08
Je sais. Mais je l'ais déjà lu 5 fois et je n'ai rien appris !!
Sinon je n'aurais never (jamais :p) poster se message !!




______________
bryandu08
Quand l'informatique seras plus facile !!
bryandu08
le 22/08/2008 à 10:54
bryandu08
Hello,
voici le code que j'ai utilisé :
<?php 
rename("/home/digitalradio/www/image/188.gif", "/home/digitalradio/www/image/183.gif");
?>


Et voici l'erreur dont j'ai ressu :

Warning: rename(/home/digitalradio/www/image/188.gif,/home/digitalradio/www/image/183.gif) [function.rename]: No such file or directory in /home/.nfs8/digitalradio/www/modif.php on line 2

Et je ne vois pas ou est l'erreur ? :s:s



______________
bryandu08
Quand l'informatique seras plus facile !!
moogli
le 22/08/2008 à 12:22
moogli
php ne trouve pas le fichier ou n'y a pas accès, peut etre un problème de droit ou de casse (minuscule / majuscule).

plutot que d'utiliser rename, le changement de nom peut se faire simplement dans le move_update_file, c'est tout aussi simple et clair.

@+
Il en faut peu pour être heureux !!!!!
LA GLOBULE
le 22/08/2008 à 12:23
LA GLOBULE
L'erreur, c'est que le fichier /home/digitalradio/www/image/188.gif n'existe pas.

En gros, tu ne connais pas le chemin de ton script sur le système de fichiers. Il est là ton problème.
Avec un print_r($_SERVER); tu peux retrouver cette information.

Mais sinon, l'erreur te donne une information sur ce chemin (No such file or directory in /home/.nfs8/digitalradio/www/modif.php), donc à mon avis, ceci devrait fonctionner :

<?php
rename("/home/.nfs8/digitalradio/www/image/188.gif", "/home/.nfs8/digitalradio/www/image/183.gif");
?>


PS : je partage l'avis de moogil pour move_uploaded_file. Donne le bon nom directement à ton fichier au moment de l'upload plutôt que de le renommer.
naflo
le 20/08/2010 à 13:20
naflo
Voila un code qui fonctionne en changeant le nom de l'image par l'id, on considère que l'id est récupéré dans les sessions.
<?php
$id_membre = $_SESSION['id_membre'];//Récupération de l'id du membre dans une variable simple.
$avatar = $_FILES['avatar'];//Dans le formulaire l'input type file doit avoir le nom "avatar".
$extention = strtolower(substr($avatar['name'],-3));//Récupération de l'extension et mise en minuscule.
//Important ! penser à sécuriser les extentions valides dans un tableau.
move_uploaded_file($avatar['tmp_name'],"images/avatar/".$id_membre.".".$extention);
?>


Voila qui devrait donner une réponse au sujet.
Bloc note est mon ami
LupusMic
le 20/08/2010 à 23:54
LupusMic
C'est marrant de répondre deux ans après le dernier message avec un code bogué, complètement ^^;

1. Les extensions de fichier ça n'existe pas. Du moins, ça n'a aucun sens. C'est juste une convention qu'on peut utiliser pour se simplifier la vie.

2. Le posteur original voulait ne pas écraser l'ancien fichier. Avec ta solution, le fichier du membre est systématiquement écrasé.

Bref, on en est pas sorti.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours