Suppression de fichier ftp en php
Résolu
Everio
Messages postés
44
Statut
Membre
-
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
Configuration: Windows Vista Firefox 3.0.10
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 -
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.
-
$file =strstr($data["lien_fichier"]);
la il manque un argument à ta fonction strstr -
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. -
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 -
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. -
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 -
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 ? -
-
il faut "remonter" de 2 niveaux
../../fichiers/contrats/017.pdf
-
"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 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. -
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. -
Et je précise le fichier dans lequel je souhaite coupier/supprimer des fichiers est en mode de permissions 755.
-
tu ne m'a pas dis si tu avais essayé $file="../../fichiers/contrats/017.pdf " ??
-
-
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. -
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.