Page 1 sur 2
Supprimer un fichier
Posté : 18 avr. 2011, 11:42
par lusc
Bonjour, je suis entrain de créer un site (avec 10 client max) ou chacun aurai un dossier dans lequel il peut ajouter ou supprimer des fichiers.
Pour en ajouter j'ai réussit mais le problème c'est pour en supprimer.Le fichier n'est pas directement définie (c'est à dire que le nom est une valeur "$nom_du_fichier") car je reprend les données d'un formulaire.J'ai essayer des codes différents mais impossible de supprimer un fichier. Je met le code de ma page supprimer.php pour que vous y voyer plus clair.
<?php
session_start();
$nom=$_POST['nom_du_fichier'];
unlink("$nom");
?>
C'est tous bête comme code

.
Sur le navigateur il me met "Warning: unlink(mon_fichier.jpg ) [function.unlink]: No such file or directory in... "
sa veut bien dire qu'il arrive à prendre les données du formulaire vue qu'il m'affiche le nom du fichier
Donc voila si quelqu'un à la solution?!?!
Merci
Re: Supprimer un fichier
Posté : 18 avr. 2011, 11:46
par macgawel
Bonjour.
Il faut préciser le répertoire dans lequel se trouve le fichier

Re: Supprimer un fichier
Posté : 18 avr. 2011, 11:47
par misterflo
Salut,
Je ne vois pas où est le problème, il dit que le fichier ou le dossier n'existe pas, c'est sans doute qu'il a raison

As-tu bien vérifié que le fichier que tu essaye de supprimer est présent dans le bon dossier ?
Il est peut-être dans un dossier différent de là où est ton script !
Re: Supprimer un fichier
Posté : 18 avr. 2011, 11:54
par lusc
Oui d'ailleur quand je remplace unlink("$nom"); par unlink("nom_du_fichier.jpg"); sa marche nickel. Mais je ne veut pas avoir à reprendre à chaque fois tous les fichiers de tous les clients

c'est pour cela que j'ai besoin de $nom
Re: Supprimer un fichier
Posté : 18 avr. 2011, 11:57
par misterflo
Le
$_POST ne doit pas être bon alors, que t'affiche-t-il si tu fais
echo $_POST['nom_du_fichier'];
Re: Supprimer un fichier
Posté : 18 avr. 2011, 12:00
par lusc
Il m'affiche bien le nom du fichier "nom_du_fichier.jpg".
Je comprend pas

Re: Supprimer un fichier
Posté : 18 avr. 2011, 12:02
par macgawel
Oui d'ailleur quand je remplace unlink("$nom"); par unlink("nom_du_fichier.jpg"); sa marche nickel. Mais je ne veut pas avoir à reprendre à chaque fois tous les fichiers de tous les clients

c'est pour cela que j'ai besoin de $nom
Dans ce cas le problème vient de
$nom...
Tu peux déjà faire :
-
echo $nom; pour voir s'il te semble correct.
-
echo getcwd(); pour vérifier le répertoire où tu te trouves.
- Lister le répertoire (avec scandir ou glob)
Re: Supprimer un fichier
Posté : 18 avr. 2011, 12:07
par lusc
Tous est en règle:
- echo $nom; me renvoie le bon nom du fichier
- echo getcwd(); me renvoie au bon dossier
- le fichier est bien présent dans le dossier
Re: Supprimer un fichier
Posté : 18 avr. 2011, 12:15
par misterflo
Dans le
unlink essaye d'enlever les "
Peut-être que ca ne lui plait pas !
Si ca ne change toujours rien bah...bah je sais pas

Re: Supprimer un fichier
Posté : 18 avr. 2011, 12:21
par lusc
J'ai deja essayé avec unlink($nom); unlink('$nom'); unlink("$nom"); unlink("../dossier/$nom");
J'ai tous essayé mais rien n'y fait

mais bon je chercherai pour réussir d'une autre maniere si j'y arrive
En avant les codes
Merci à vous deux pour vos reponse et à bientot
Re: Supprimer un fichier
Posté : 18 avr. 2011, 12:49
par macgawel
Questions cons...
- Tu as essayé de l'ouvrir (avec
file_get_contents() par exemple) au lieu de le supprimer ?
- Quand tu le fais "à la main", ça fonctionne. Mais tu suis exactement la même procédure ?
Genre, dans ton script, faire
<?php
session_start();
$nom=$_POST['nom_du_fichier'];
unlink("nomdufichier.jpg")
;?>
Tu peux en profiter pour faire un
echo strlen($nom);, histoire de voire s'il n'y aurai pas des caractères parasites (et tester avec un nom de fichier simple du genre
test.txt)...
Re: Supprimer un fichier
Posté : 18 avr. 2011, 14:20
par lusc
Si je met file_get_contents("$nom"); le serveur me marque
Warning: file_get_contents(nom_du_fichier.php ) [function.file-get-contents]: failed to open stream: No such file or directory in [...]supprimer.php on line 10
peut tu m'en dire plus sur la fonction file_get_contents()
Pour le deuxieme cas j'ai bien fait ce code mais du coup la ligne $nom=$_POST['nom_du_fichier']; ne sert à rien

.
Re: Supprimer un fichier
Posté : 18 avr. 2011, 14:32
par macgawel
Si je met file_get_contents("$nom"); le serveur me marque
Warning: file_get_contents(nom_du_fichier.php ) [function.file-get-contents]: failed to open stream: No such file or directory in [...]supprimer.php on line 10
Il m'affiche bien le nom du fichier "nom_du_fichier.jpg".Je comprend pas

C'est NomDufichier.
jpg ou .
php ?
Le fichier
[...]/nom_du_fichier.php existe ? C'est bien ce fichier que tu essayes de supprimer ?
peut tu m'en dire plus sur la fonction file_get_contents()
RTFM
file_get_contents — Lit tout un fichier dans une chaîne.
file_get_contents() est la façon recommandée pour lire le contenu d'un fichier dans une chaîne de caractères.
Re: Supprimer un fichier
Posté : 18 avr. 2011, 14:51
par Mazarini
Bonjour,
As tu vérifier le nom du fichier dans le source de la page ?
Si le nom de fichier comporte un blanc, il peut y avoir un problème avec de type %20 non visible dans le navigateur (ou autre caractère spécial).
De même il peut y avoir un problème avec les minuscules/majuscules.
Re: Supprimer un fichier
Posté : 18 avr. 2011, 14:57
par lusc
Sa yé j'ai réussit à resoudre mon probleme (je sais pas trop comment). J'ai modifier le formulaire d'envoi et je ne sais par quelle miracle mais sa marche.
Ce que je ne comprend pas c'est que le script afficher quand même la valeur du formulaire quand je mettais un echo "$nom"

mais bon.
En tous cas je vous remercie de m'avoir aider et à trés bientot
merci ¤¤