Page 1 sur 2

Warning: unlink no such file or directory

Posté : 23 juil. 2012, 21:53
par Billionaireboy
Bonjour,

Pourriez vous m'aider à résoudre u petit problème d'unlink svp?
J'ai fait pas mal de forum mais je n'ai pas encore trouvé de soluce...

Voici mon message d'erreur:
Warning: unlink(photos/photo-1228-1-medium.png) [function.unlink]: No such file or directory in /homez.541/site/www/includes/db.php on line 1538
Warning: unlink(photos/photo-1228-1-medium.gif) [function.unlink]: No such file or directory in /homez.541/site/www/includes/db.php on line 1538
Warning: unlink(photos/photo-1228-1-medium.jpg) [function.unlink]: No such file or directory in /homez.541/site/www/includes/db.php on line 1538
Warning: unlink(photos/photo-1228-1-medium.jpeg) [function.unlink]: No such file or directory in /homez.541/site/www/includes/db.php on line 1538

Mon code est le suivant:

Code : Tout sélectionner

function db_delete_advert_photo($id, $num) { debug("db_delete_advert_photo(id = '$id', num = '$num')"); $id = (int)$id; $num = (int)$num; foreach ( array('png', 'gif', 'jpg', 'jpeg') as $ext ) { unlink("photos/photo-$id-$num-medium.$ext"); }
Les images existes bien.
J'ai aussi essayer des orthographes différents tel que:
unlink(/photos/photo-1228-1-medium.jpeg)
unlink(../photos/photo-1228-1-medium.jpeg)
unlink(photos\photo-1228-1-medium.jpeg)
unlink(\photos\photo-1228-1-medium.jpeg)

Merci pour votre aide ;)

Re: Warning: unlink no such file or directory

Posté : 23 juil. 2012, 22:08
par Ryle
Le problème est - comme l'indique le message d'erreur de php - que le chemin ou le fichier que tu indiques n'existe pas là où tu demandes à php de le supprimer. Si tes dossiers et fichiers existent bien, c'est donc un problème de chemin entre ton script php et ton fichier à supprimer.

A priori, tu as un script "db.php" placé dans le dossier "includes/" et qui tente de supprimer les fichiers "photo-1228-1-medium.png" dans le répertoire "photos/". Il essaye donc d'accéder au fichier dans le dossier "includes/photos/" est-ce bien là que l'image se trouve ?

A noter que tu tentes de supprimer 4 fichiers avec respectivement les extensions png, gif, jpg et jpeg. Est-ce que ces 4 fichiers existent bien ? ou est-ce que tu n'en as qu'un dont tu ignores l'extension ? (auquel cas, tu auras toujours 3 messages d'erreur puisque les autres fichiers n'existent pas).
Nota : Tu peux tester l'existence d'un fichier avant de faire appel à unlink() avec file_exists() :)

Re: Warning: unlink no such file or directory

Posté : 23 juil. 2012, 22:21
par Billionaireboy
Le dossier "photos" est au meme niveau que le dossier "includes" c'est à dire que includes/photos n'existe pas.
Cette 4 fichiers existent bien effectivement.

Précision importante: le script fonctionnait trés bien avant migration du site.

Re: Warning: unlink no such file or directory

Posté : 23 juil. 2012, 23:25
par Ryle
Et le script que tu exécutes (dont tu passes l'url dans le navigateur) c'est db.php ou c'est un autre script qui fait un include de ton db.php ? (et si c'est un autre script, celui-ci est-il placé à la racine de ton site, au même niveau que includes ou photos, ou est-il dans un autre dossier ?

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 07:55
par nanounel
moi je n'utilise jamais les simplifications php

au lieu de :
unlink("photos/photo-$id-$num-medium.$ext");

j'écris
unlink("photos/photo-".$id."-".$num."-medium.".$ext");

à voir peut être ...

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 08:20
par Billionaireboy
Ryle,

C'est un fichier db.php qui se trouve dans le dossier includes.

Nanounel,

J'ai essayer ça ne me donne rien. J'avais une erreur de syntax et en récrivant le code correctement (sans " à la fin) j'ai le meme message d'erreur.
Code réécrit:

Code : Tout sélectionner

"photos/photo-".$id."-".$num."-medium.".$ext

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 16:20
par Ryle
Ah ben si tu appelles directement db.php, le problème vient de la :)

Le dossier photos ne se trouve pas dans le répertoire du script, mais dans le répertoire parent. Le chemin pour la suppression depuis db.php devrait donc être "../photos/photo-..."

Et il vaut mieux effectivement sortir les variables des chaines pour la lisibilité du code (avec les balises
 et les couleurs c'est encore plus flagrant), mais ça ne change pas grand chose dans ton cas :)
[php]unlink("photos/photo-$id-$num-medium.$ext");

unlink('photos/photo-' . $id . '-' . $num . '-medium.' . $ext);

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 20:17
par Billionaireboy
Le truc c'est que le dossier était bien la avant la migration.
Comment est-ce que je peut lui dire d'aller dans ce dossier sans déplacer le dossier?

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 21:17
par Ryle
C'est bizarre ton histoire... c'est quoi cette migration ?
Et tu me confirmes bien que l'url que tu appelles dans la barre d'adresse de ton navigateur, c'est bien "http://ton_site/includes/db.php" ?

Si c'est bien cela, à priori, tu as juste à ajouter "../" au début du chemin de ton unlink pour qu'il remonte d'un dossier pour trouver le répertoire "photos" :)

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 21:45
par Billionaireboy
Juste un transfert mais j'ai constaté un bug à un autre niveau: une commande n'était pas reconnu, j'ai du la remplacer par une autre similaire.
Je te confirme en meme temps que je suis bien débutant ;)

Le fichier appelé n'est pas bd.php, il s'agit d'un lien qui permet de supprimer le fichier en question. Cependant comme l'erreur l'indique il s'agit d'une commande sur le db.php.

Toujours le meme problème avec le code suivant:
unlink('../photos/photo-' . $id . '-' . $num . '-medium.' . $ext);

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 22:24
par Lirio
Le plus simple, ce serait d'avoir l'arborescence du projet. On pourrait vérifier la validité des chemins :mrgreen:

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 22:35
par Billionaireboy
L'arborescence des fichiers interessants est la suivante:

Code : Tout sélectionner

www fichier_de_suppression.php Includes db.php Photos photo-1245-1-medium.png photo-1245-1-medium.gif photo-1245-1-medium.jpg photo-1245-1-medium.jpeg

Merci pour ton aide, je sait que ce n'est pas trés facile comme ça :)

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 22:41
par Billionaireboy
Oups les espaces n'ont pas été pris en compte:

www

www/fichier_de_suppression.php

www/Includes
www/includes/db.php

www/Photos
www/Photos/photo-1245-1-medium.png
www/Photos/photo-1245-1-medium.gif
www/Photos/photo-1245-1-medium.jpg
www/Photos/photo-1245-1-medium.jpeg

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 22:43
par Ryle
Ok, alors on oublie le problème de chemin, celui-ci est bon :)

A mon avis, tu as du passer d'un serveur Windows vers un serveur Linux, ce dernier étant sensible à la casse : "Photos" et "photos" ne sont pas les mêmes répertoires...

Il faut garder une cohérence entre les noms de tes répertoires et le chemin utilisé dans ton unlink :)

Re: Warning: unlink no such file or directory

Posté : 24 juil. 2012, 22:51
par Billionaireboy
Oui j'ai vérifier ça et les espace aussi mais j'ai les noms correspondent bien ...
Mais effectivement j'ai mis des majuscules ici que je n'ai aps en vrai.

Le warning indique que le fichier est recherché dans le fichier db.php comment ça se fait puisqu'on lui dit d'aller dans le repertoire photo?