Problême php fonction unlink

Résolu
Azraka -  
 abdou -
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

Azraka
 
Personne n'a d'idée ?

Merci d'avance.
1
Azraka
 
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
abdou
 
pourquoi vous marquez que c'est resolu ???????!!!!!!!!!!!!!!
0
macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention   89
 
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
Azraka
 
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   Statut Membre Dernière intervention   89
 
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
Azraka
 
..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   Statut Membre Dernière intervention   89
 
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
Azraka
 
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