Rechercher : dans
Par :

Suppression de fichier ftp en php

Dernière réponse le 11 jun 2009 à 11:54:03 Everio, le 9 jun 2009 à 13:14:46 
 Signaler ce message aux modérateurs

Bonjour,
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

Meilleures réponses pour « Suppression de fichier ftp en php » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[Windows] Impossible de supprimer un fichier ou un dossier VoirSi Windows n'arrive pas à supprimer un fichier ou un dossier, la cause peut être l'une des suivantes : Le fichier ou le dossier à supprimer est utilisé par un processus du système Le dossier à supprimer contient des fichiers ou dossiers cachés ...
[MacOS X] Supprimer les fichiers récalcitrants VoirIl vous arrive peut-être parfois de vouloir vider la corbeille et que les fichiers ou dossiers que vous voulez supprimer y restent, refusent de disparaître. Pour résoudre ce problème, utilisez une commande UNIX dans le Terminal. Note : ATTENTION...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

1

Alain_42, le 9 jun 2009 à 13:18:14

la variable $data["lien_fichier"] contient le chemin du type http://www. .... / ... / ...

si ton fichier est sur le serveur mets le lien relatif

Répondre à Alain_42

2

Everio, le 9 jun 2009 à 13:32:47

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.

Répondre à Everio

3

Alain_42, le 9 jun 2009 à 14:05:34

$file =strstr($data["lien_fichier"]);


la il manque un argument à ta fonction strstr

Répondre à Alain_42

4

Everio, le 9 jun 2009 à 14:16:47

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.

Répondre à Everio

5

Everio, le 9 jun 2009 à 17:43:43

Up

Répondre à Everio

6

Alain_42, le 9 jun 2009 à 20:46:44

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

Répondre à Alain_42

7

Everio, le 10 jun 2009 à 09:18:53

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.

Répondre à Everio

8

mrtechno01, le 10 jun 2009 à 09:35:59

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

Répondre à mrtechno01

9

Everio, le 10 jun 2009 à 10:03:27

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 ?

Répondre à Everio

10

Everio, le 10 jun 2009 à 13:02:42

Up

Répondre à Everio

11

Alain_42, le 10 jun 2009 à 22:03:13

Il faut "remonter" de 2 niveaux

../../fichiers/contrats/017.pdf 

Répondre à Alain_42

12

A.Nonymous, le 11 jun 2009 à 01:37:17

"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 ...

Répondre à A.Nonymous

13

A.Nonymous, le 11 jun 2009 à 01:39:22

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.

Répondre à A.Nonymous

14

Everio, le 11 jun 2009 à 10:21:33

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.

Répondre à Everio

15

Everio, le 11 jun 2009 à 10:49:42

Et je précise le fichier dans lequel je souhaite coupier/supprimer des fichiers est en mode de permissions 755.

Répondre à Everio

16

Alain_42, le 11 jun 2009 à 10:58:08

Tu ne m'a pas dis si tu avais essayé $file="../../fichiers/contrats/017.pdf " ??

Répondre à Alain_42

17

Everio, le 11 jun 2009 à 11:24:35

Pareil : permission denied.

Répondre à Everio

18

 Everio, le 11 jun 2009 à 11:54:03

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.

Répondre à Everio
Collection CommentÇaMarche.net