Aller au contenu

Problème de suppression de fichier (unlink)


Sujets conseillés

Posté

Bonjour bonjour !

J'ai un petit problème quant à la suppression de fichiers avec la fonction unlink de PHP.

En fait j'ai fait sur mon site un panneau d'administration. Une des parties de celui-ci me permet de lister les fichiers présent pour une certaine personne et me donne la possibilité de choisir les fichiers que je veux éventuellement supprimer de la base de données et du serveur en même temps.

J'ai donc eu recours à la fonction unlink et voici mon code de suppression en question.

$chemin2= "client/".$societe."/depot/"; //chemin pour acceder au dossier
$chemin = "client/".$societe."/depot/".$nom_depot; //chemin contenant le nom de fichier à supprimer.

$ouverture= opendir("$chemin2"); //on ouvre le dossier
chmod ($chemin, 0777); //onpasse le fichier en niveau de sécu 777
unlink($chemin); //on efface
closedir($ouverture); //on ferme le dossier



$suppression = "DELETE FROM krea_depot_krea WHERE id = $suppr";
$suppr1 = mysql_query($suppression) or die(mysql_error())

echo'<script language="Javascript">
alert("Depot supprim\351 avec succ\350s !");
window.location.replace("liste_depot_kreazone.php?idclient='."$idclient".'");
</script>';

La suppression de la base fonctionne nikel par contre pour la suppression du serveur il y a un petit soucis.

En fait lorsque je lance cette fonction, j'ai ma petite fenêtre javascript qui me spécifie bien que j'ai réussi à supprimer. Je regarde ma base aucun problème, mais lorsque je vais sous Filezilla et que je regarde dans le dossier en question, le fichier est toujours là. Je me déconnecte et me reconnecte, il est toujours là, par contre si je me connecte, que je me rend dans le dossier et que j'appuie sur le bouton actualiser de filezilla, à ce moment là, le fichier disparait.

Donc, est ce un problème de la fonction ? est ce un problème de filezilla qui me montre comme si le fichier était encore présent alors que en fait il n'est déjà plus là ?

Je tiens à préciser que lorsque je testais ma fonction en local sous easyphp, elle fonctionnait impeccable autant vis à vis de la bdd mais aussi vis à vis de la suppression de fichier ou dossier qui se supprimaient comme voulu.

Merci d'avance.

Arnaud S.

Posté
Je regarde ma base aucun problème, mais lorsque je vais sous Filezilla et que je regarde dans le dossier en question, le fichier est toujours là. Je me déconnecte et me reconnecte, il est toujours là, par contre si je me connecte, que je me rend dans le dossier et que j'appuie sur le bouton actualiser de filezilla, à ce moment là, le fichier disparait.
C'est ainsi que fonctionne FileZilla. Il ne rafraîchit la liste que si on le lui demande (F5) ou si c'est au moyen de FileZilla qu'on fait un changement dans le répertoire.

Jean-Luc

Posté

Merci pour vos réponse,

alors j'ai essayé de rajouter dans mon code la relation avec file_exists.

Cela me donne donc ce nouveau code.

$chemin2= "client/".$societe."/depot/"; //chemin pour acceder au dossier
$chemin = "client/".$societe."/depot/".$nom_depot; //chemin contenant le nom de fichier à supprimer.

$ouverture= opendir("$chemin2"); //on ouvre le dossier
chmod ($chemin, 0777); //onpasse le fichier en niveau de sécu 777
unlink($chemin); //on efface
closedir($ouverture); //on ferme le dossier



$suppression = "DELETE FROM krea_depot_krea WHERE id = $suppr";
$suppr1 = mysql_query($suppression) or die(mysql_error());


if (file_exists($chemin))
{
echo'<script language="Javascript">
alert("Le fichier est toujours pr\351sent sur le serveur !");
window.location.replace("liste_depot_kreazone.php?idclient='."$idclient".'");
</script>';
}
else
{
echo'<script language="Javascript">
alert("Depot supprim\351 avec succ\350s !");
window.location.replace("liste_depot_kreazone.php?idclient='."$idclient".'");
</script>';
}

A prioris cela marcherait vu que le script m'indique bien après le processus de suppression, une boite d'alerte javascript m'indiquant que le fichier a été supprimé avec succès. Si le fichier existerait encore sur le serveur il devrait logiquement m'indiquer que le fichier est encore présent sur le serveur, à moins bien sûr que j'ai "fauté" dans mon code.

En tout cas merci à vous deux !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...