Supression de fichier en PHP avec unlink(URL)
Résolu
-CCM-
Messages postés
930
Date d'inscription
Statut
Membre
Dernière intervention
-
-CCM- Messages postés 930 Date d'inscription Statut Membre Dernière intervention -
-CCM- Messages postés 930 Date d'inscription Statut Membre Dernière intervention -
Bonjour, m'etant renseigner sur la supression de fichier en php, j'utilise la fonction unlink(chemin) :
Voici mon code :
dans les trois cas de $lien j'ai le droit à un
Warning: unlink($lien) [function.unlink]: No such file or directory in C:\blablabla\sitelocale\reblablabla
Alors que mon echo affiche a chaque fois le bon ien avec l'extension du fichier...
D'ou sa proviendrais?
Voici mon code :
$query = "SELECT * FROM docs WHERE id = ".$id;
$result = mysql_query($query, $cnx);
while($row = mysql_fetch_row($result))
{
$id = $row[0];
$type = $row[1];
$url = $row[4];
//$lien="/docs/$type/$url";
//$lien="C:\Program Files\EasyPHP 2.0b1\www\docs\Référentiels\Copie.doc";
$lien="..\docs\Référentiels\Copie.doc";
unlink('$lien');
echo"lien $lien";
dans les trois cas de $lien j'ai le droit à un
Warning: unlink($lien) [function.unlink]: No such file or directory in C:\blablabla\sitelocale\reblablabla
Alors que mon echo affiche a chaque fois le bon ien avec l'extension du fichier...
D'ou sa proviendrais?
Configuration: Windows 3.1.2 workstation edition Netscape 0.2
14 réponses
-
if( file-exists( "../documents/$dossier/$dossier2" ) ) unlink( "../documents/$dossier/$dossier2" ); else echo "ce fichier n'existe pas";
-
Salut croy, merci a toi.
C'est exactement ce qu'il me fallait.
Mais avec un '_' au lieu du '-' file_exists.
C'est pratique comme fonction ;)
Merci, j'attaque le reste maintenant !! je n'arrive pas a parser une infos et d'autres petit soucis...
A+ -
Essaye avec un chemin complet :
unlink( "C:\Program Files\EasyPHP 2.0b1\www\doss\text.txt" );
-
en dur unlink( "C:\Program Files\EasyPHP 2.0b1\www\doss\text.txt" ); sa marche nickel par contre il n'aime pas les antislash, car au lieu de lire \texte il l'interprete comme "\t" +"exte".
Maintenant je n'ai plus qu'a travailler tout sa pour rendre mes liens dynamiques... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
J'ai remit mes liens mes variables et la supression des documents hors de mon repertoires se passe a merveille ...
voici mon code
unlink( "../docs/$type/$url" );
Merci pour votre aide et votre patience -
je remonte un peu ce post.....
si un fichier est supprimé et je redemande la supression ... (enregistrement dans la base toujours present mais le fichiers n'existe plus)
j'ai l'erreur :
Warning: unlink(../dossier/dossier2/document_word.doc) [function.unlink]: No such file or directory in C:\Program Files\EasyPHP 2.0b1\www\fonctions\suppr.php on line 127
j'essai de contourner cette erreur avec un :
// suppression du document
unlink( "../documents/$dossier/$dossier2" );
if (unlink = false)
echo "<script>alert('Le document n'existe plus');</script>";
Sa ne marche pas (la comparaison est foireuse)
Comment réaliser cette fonction svp ?
Merci -
je relance donc, je n'ai pas trouver comment exploiter le "false"
-
Bonjour,
Si ton fichier .doc est dans le même dossier que ta page avec ton code PHP, la ligne suivante est fausse:
$lien="..\docs\Référentiels\Copie.doc";
Dans ce cas il faudrai mettre:
$lien="docs\Référentiels\Copie.doc";
En fait ça dépends d'ou est ta page d'origine.
Sinon, met :
$lien="\docs\Référentiels\Copie.doc";
Normalement il te renverra sur la racine et suivra l'ordre des dossiers du lien.
-
-
Il reste que le code donné (unlink( '$lien' );) ne peut pas marcher et que c'est la première chose à modifier.
-
Salut, le chemin est le bon, le document ne fait pas partie du répertoire ou il y a mon script php.
Je ne comprends pas pourquoi le fichier ne s'efface pas. J'ai lu une cinquantaine de post et vu un peu de tout mais a chaque fois je n'arrive pas a supprimer mes fichiers...
J'ai même vu un exemple qui à fonctionner pour un membre :$ouverture= opendir("../dossier2/dossier2"); unlink("../dossier2/dossier2/test.jpg"); closedir($ouverture);
Ce qui me donnerais par exemple avec des valeurs en dur :$ouverture= opendir("../docs"); unlink("../docs/text.txt"); closedir($ouverture);
Mais sa ne marche toujours pas.. :( étrange , très étrange même ... -
J'ai rien trouver sur mon phpinfo.
Quelles paramètres sont à verifier ? -
opendir / closedir n'a certainement rien à voir.
Ma reco est de revenir à une approche méthodique et progressive :
Commence par essayer un script avec le chemin vers le fichier à détruire en dur :
1. crée un script avec unlink( "toto.txt" );
2. dans le même dossier que ce script crée un fichier toto.txt avec n'importe quoi à l'intérieur
3. exécute le script
Qu'est-ce-que ça donne ? est-ce-que le fichier toto.txt est supprimé ? sinon quel message d'erreur (copié/collé STP) -
comme par hasard c'est exactement ce que je viens de faire !! faut arreté la télépathie !!
$lien="text.txt"; unlink($lien); $lien2=text2.txt; unlink($lien2);
Notice: Use of undefined constant text2 - assumed 'text2' in C:\Program Files\EasyPHP 2.0b1\www\ad\sup.php on line 127
Notice: Use of undefined constant txt - assumed 'txt' in C:\Program Files\EasyPHP 2.0b1\www\ad\sup.php on line 127
Warning: unlink(text2txt) [function.unlink]: No such file or directory in C:\Program Files\EasyPHP 2.0b1\www\ad\sup.php on line 128
text.txt supprimé
text2.txt toujours la