Problême php fonction unlink

Résolu/Fermé
Azraka - 4 juin 2008 à 15:09
 abdou - 16 juin 2012 à 18:16
Bonjour,

J'ai actuellement un soucis avec la fonction unlink(). J'aimerai supprimer un fichier contenu dans un dossier mais j'obtient à chaque fois un message d'erreur.

Voici mon morceau de code :

$ouverture= opendir('../dossier1/dossier2');
unlink('test.jpg');
closedir($ouverture);

et voilà l'erreur :

Warning: unlink(test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78
(gestion_photos.php étant le fichier où se trouve le code ci-dessus)

Je ne sais plus ou chercher.. Merci d'avance.
A voir également:

4 réponses

Personne n'a d'idée ?

Merci d'avance.
1
Au lieu d'attendre bêtement une réponse j'ai continué à chercher (cela paraît évident mais pas pour tout le monde ^^) et après différents essais j'ai enfin trouvé la solution à mon problème. Je la partage donc au cas où quelqu'un rencontrerait le même problème :

$ouverture= opendir("../dossier2/dossier2");
unlink("../dossier2/dossier2/test.jpg");
closedir($ouverture);

Bonne journée à tous.
0
pourquoi vous marquez que c'est resolu ???????!!!!!!!!!!!!!!
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
4 juin 2008 à 15:37
Bonjour.

Le problème est relativement simple :
// 1. On crée un pointeur vers le répertoire '../dossier1/dossier2' MAIS ON NE CHANGE PAS DE REPERTOIRE
$ouverture= opendir('../dossier1/dossier2');
// 2. On demande la suppression du fichier test.jpg DANS LE REPERTOIRE COURANT 
unlink('test.jpg');
// 3. On supprime le pointeur
closedir($ouverture);
0
Merci de ta réponse, mais il me semble que j'ai bien fait ce que tu expliques..

Pourrais-tu préciser le "MAIS ON NE CHANGE PAS DE REPERTOIRE", et le "DANS LE REPERTOIRE COURANT" ?
Je crois bien que c'est là la source du problème mais je ne comprend pas pourquoi.
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
4 juin 2008 à 16:02
Je n'explique rien, j'ai juste commenté ton code pour te montrer où ça cloche.

Tu as bien cerné la source du problème :
Le script est dans C:\wamp\www\site\gestion\ et tu veux supprimer C:\wamp\www\site\dossier1\dossier2\test.jpg.

Avec ta méthode :
0. Tu (enfin, plutôt PHP) es dans le répertoire C:\wamp\www\site\gestion\
1. Tu définis une varaible $ouverture qui pointe vers C:\wamp\www\site\dossier1\dossier2\
2.Tu demandes la suppression du fichier C:\wamp\www\site\gestion\test.jpg (vu que tu n'as pas bougé !)
Comme il n'existe pas, PHP te renvoie une erreur.

Ce que tu peux faire, c'est bêtement unlink ('../dossier1/dossier2/test.jpg'); sans faire de opendir...
0
..j'ai essayé, il me sort alors :

Warning: unlink(../dossier1/dossier2/test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78

Sais-tu comment je peux "bouger" dans le répertoire où se trouve mon fichier à effacer ?
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
4 juin 2008 à 16:34
Warning: unlink(../dossier1/dossier2/test.jpg) [function.unlink]: No such file or directory in C:\wamp\www\site\gestion\gestion_photos.php on line 78

Ca, ça veut dire qu'il ne trouve pas ton fichier test.jpg

Il est sensé être dans quel répertoire ?

Tu peux faire un test avant :
$fichier = '../dossier1/dossier2/test.jpg';
if ( is_file ($fichier) ) {
   unlink ( $fichier) ;
}

ou utiliser $_SERVER["PATH_TRANSLATED"], qui te donne le répertoire courant (faire un echo $_SERVER["PATH_TRANSLATED"] t'aiderait peut-être à deboguer...)
0
Voici où se trouve le code : C:\wamp\www\site\gestion\gestion_photos.php
et voilà où se trouve le fichier, il y est c'est sûr : C:\wamp\www\site\gallerie\thermique\test.jpg

(cette fois j'ai mis les vrais noms ^^)

Quant au "echo $_SERVER["PATH_TRANSLATED"];" cela ne m'affiche rien..

(je ne sais plus si je l'ai précisé mais avec le chemin absolu cela ne marche pas non plus..)
0