Suppression de fichier ftp en php
Résolu
Everio
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
Kristof -
Kristof -
Bonjour,
j'ai un petit probleme pour supprimer un fichier sur un ftp en php.
Voici mon code :
la variable $data["lien_fichier"] contient le chemin du type http://www. .... / ... / ...
j'ai essayé en enlevant l'adresse du site, mais rien ne marche.
Voici le code d'erreur :
Merci d'avance de votre aide
j'ai un petit probleme pour supprimer un fichier sur un ftp en php.
Voici mon code :
<?php require("config.php"); mysql_connect (DB_HOST,DB_LOGIN,DB_PASS); mysql_select_db (DB_BDD); $sql="SELECT * FROM Contrat WHERE id_contrat={$_GET["id"]}"; $req=mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data=mysql_fetch_assoc($req); $file =strstr($data["lien_fichier"]); $ftp_server=gethostbyname(FTP_HOST); $ftp_user_name=FTP_LOGIN; $ftp_user_pass=FTP_PASS; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); unlink($file); ftp_close($conn_id); ?>
la variable $data["lien_fichier"] contient le chemin du type http://www. .... / ... / ...
j'ai essayé en enlevant l'adresse du site, mais rien ne marche.
Voici le code d'erreur :
Warning: unlink(../fichiers/contrats/017.pdf) [function.unlink]: No such file or directory in /mnt/web4/42/97/51277797/htdocs/lcinformatique/administration/suppression_contrat.php on line 21
Merci d'avance de votre aide
A voir également:
- Supprimer un fichier en php
- Supprimer rond bleu whatsapp - Guide
- Fichier bin - Guide
- Impossible de supprimer un fichier - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
19 réponses
la variable $data["lien_fichier"] contient le chemin du type http://www. .... / ... / ...
si ton fichier est sur le serveur mets le lien relatif
si ton fichier est sur le serveur mets le lien relatif
C'est que j'avais essayé : ../fichiers/contrats/017.pdf (je remonte d'un niveau, parce que la page php si trouve dans un autre dossier. Mais ca me met la meme erreur.
oui pardon, j'avais mis ca correctement au depart : $file =strstr($data["lien_fichier"],"/fichiers); pour récupérer /fichiers/contrats/017.pdf
Ensuite j'ai fait
$file = "..".$file; pour avoir le lien relatif : ../fichiers/contrats/017.pdf et quand je fais ca, ca ne pmarche toujours pas.
Ensuite j'ai fait
$file = "..".$file; pour avoir le lien relatif : ../fichiers/contrats/017.pdf et quand je fais ca, ca ne pmarche toujours pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fais un echo $file pour voir
ensuite es tu certain de ton chemin relatif
tel qu'il est fait cela veut dire que tu as
/fichiers/tes fichiers .pdf
/autre_dossier/ton_script_php
ensuite es tu certain de ton chemin relatif
tel qu'il est fait cela veut dire que tu as
/fichiers/tes fichiers .pdf
/autre_dossier/ton_script_php
Voici mon echo $file : ../fichiers/contrats/017.pdf
et voici mes dossiers :
/fichiers/contrats/tes fichiers .pdf
/administration/ton_script_php
j'ai encore passé 2heures hier soir a tester pleins de trucs, mais sans succes.
et voici mes dossiers :
/fichiers/contrats/tes fichiers .pdf
/administration/ton_script_php
j'ai encore passé 2heures hier soir a tester pleins de trucs, mais sans succes.
salut,
alors pour t'aider pour supprimer des fichiers par php, je te conseil la commande php exec()
exemple de script sur un hébergeur sous linux:
supprimer un fichier :
<?
exec(rm fichier.php);
?>
créer un dossier :
<?
exec(mkdir dossier);
?>
...
J'espère que cela pourra t'aider mais bon le problème c'est que tous les hébergeur n'accepte pas ces commandes
alors pour t'aider pour supprimer des fichiers par php, je te conseil la commande php exec()
exemple de script sur un hébergeur sous linux:
supprimer un fichier :
<?
exec(rm fichier.php);
?>
créer un dossier :
<?
exec(mkdir dossier);
?>
...
J'espère que cela pourra t'aider mais bon le problème c'est que tous les hébergeur n'accepte pas ces commandes
mais je dois faire comment pour me placer dans le dossier voulu ?
je met un lien relatif comme ci dessous ?
exec(rm ../fichiers/contrats/017.pdf);
edit : avec le lien relatif, ca me met : Parse error: syntax error, unexpected T_VARIABLE
donc je veut bien faire exec(rm 017.pdf); mais comment je fait pour me placer dans le bon dossier ?
je met un lien relatif comme ci dessous ?
exec(rm ../fichiers/contrats/017.pdf);
edit : avec le lien relatif, ca me met : Parse error: syntax error, unexpected T_VARIABLE
donc je veut bien faire exec(rm 017.pdf); mais comment je fait pour me placer dans le bon dossier ?
"Voici mon echo $file : ../fichiers/contrats/017.pdf
et voici mes dossiers :
/fichiers/contrats/tes fichiers .pdf
[...]"
Et si $file vaut "/fichiers/contrats/017.pdf ", voire "./fichiers/contrats/017.pdf ", ça pourrait peut-être marcher ...
et voici mes dossiers :
/fichiers/contrats/tes fichiers .pdf
[...]"
Et si $file vaut "/fichiers/contrats/017.pdf ", voire "./fichiers/contrats/017.pdf ", ça pourrait peut-être marcher ...
Et je n'ai pas tilité sur le coup, mais la fonction "ftp_delete" pourrait avoir son utilité ...
"unlink" est pour la suppression d'un fichier local.
"unlink" est pour la suppression d'un fichier local.
Merci de votre aide, je teste la fonction ftp_delete et je vous donne des nouvelles.
edit : ca me met Warning: ftp_delete() [function.ftp-delete]: Permission denied.
Il faut faire quelque chose pour autoriser cette fonction
redit : et puis je viens de retester ma fonction ftp_put et elle me met le meme warning alors que ca marchais avant. Grr ca me saoule lol, ca fait 2 jours que je suis dessus.
edit : ca me met Warning: ftp_delete() [function.ftp-delete]: Permission denied.
Il faut faire quelque chose pour autoriser cette fonction
redit : et puis je viens de retester ma fonction ftp_put et elle me met le meme warning alors que ca marchais avant. Grr ca me saoule lol, ca fait 2 jours que je suis dessus.
Et je précise le fichier dans lequel je souhaite coupier/supprimer des fichiers est en mode de permissions 755.
Je viens de trouver par moi meme, en gros je développe un site pour mon stage, et sur le serveur ou j'heberge mon site, il y a deja plusieurs site chacun dans un dossier (mon site n'est pas a la racine du serveur). Et il fallait donc que j'ecrive ceci : $file="nom_du_dossier/fichiers/contrats/017.pdf ".
Et pas besoin de toucher aux permissions.
Je remercie quand meme tous ceux qui ont ont pris un peu de leur temps pour m'aider.
Et pas besoin de toucher aux permissions.
Je remercie quand meme tous ceux qui ont ont pris un peu de leur temps pour m'aider.
Bonjour,
En local (WAMP), ayant plusieurs sites développés, j'ai différents dossiers à la racine www.
Le "file_exists" demande que le chemin complet à partir de www soit indiqué : file_exists(nom_site/dossier/fichier_à_vérifier).
Le "unlink" lui ne demande qu'un chemin relatif : unlink(dossier/fichier_à_supprimer).
Pour savoir si je suis en local ou en distant, je fais une vérif' sur "$_SERVER['SERVER_NAME']" pour déterminer la racine du chemin du fichier.
J'espère avoir été clair.
En local (WAMP), ayant plusieurs sites développés, j'ai différents dossiers à la racine www.
Le "file_exists" demande que le chemin complet à partir de www soit indiqué : file_exists(nom_site/dossier/fichier_à_vérifier).
Le "unlink" lui ne demande qu'un chemin relatif : unlink(dossier/fichier_à_supprimer).
Pour savoir si je suis en local ou en distant, je fais une vérif' sur "$_SERVER['SERVER_NAME']" pour déterminer la racine du chemin du fichier.
J'espère avoir été clair.