Posez votre question Signaler

Problême php fonction unlink [Résolu]

Azraka - Dernière réponse le 5 juin 2008 à 08:37
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.
Lire la suite 

Problême php fonction unlink »

Suggestions
8 réponses
Réponse
+1
moins plus
Personne n'a d'idée ?

Merci d'avance.
Azraka - 5 juin 2008 à 08:37
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.
Ajouter un commentaire
Réponse
+0
moins plus
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);
Azraka - 4 juin 2008 à 15:42
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.
Ajouter un commentaire
Réponse
+0
moins plus
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...
Azraka - 4 juin 2008 à 16:11
..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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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...)
Azraka - 4 juin 2008 à 16:51
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..)
Ajouter un commentaire
Ce document intitulé « Problême php fonction unlink » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?