Erreur PHP/FTP - Warning: ftp_fget() - PHP - Programmation
Marsh Posté le 07-03-2007 à 18:09:45
L'idée est de lire le manuel : http://fr3.php.net/ftp_fget ... Le deuxième paramètre de ftp_fget est un handle sur un fichier (obtenu après un fopen).
Aussi, évite les "$destination_file", pourquoi mettre les "" autour de la variable ?
Marsh Posté le 07-03-2007 à 18:12:50
Heuuu... Je vais tester tout ça...
Pour les "", c'était un exemple du web... Je vais modifier et tester de suite.
Merci de ton aide
Marsh Posté le 07-03-2007 à 18:20:02
Citation : <? |
Citation : Warning: ftp_fget(): Cannot RETR. Cannot open file "F:\Mon.Repertoire\dir_ou_se_trouve_les_fichier_que_je_veux_telecharger". Accès refusé in c:\program files\easyphp1-8\www\telecharger.php on line 31 |
Marsh Posté le 07-03-2007 à 18:24:08
$destination_file doit être un fichier, et pas un dossier
Marsh Posté le 07-03-2007 à 18:24:54
Erf...
C'est un repertoire composé de plusieurs *.rar que je voudrai télécharger...
Aurais-tu une idée dans ce cas ?
Marsh Posté le 07-03-2007 à 18:27:04
Je vois pas la différence, quand tu télécharges un fichier à partir d'un FTP, il faut bien lui donner le fichier destination...
Marsh Posté le 07-03-2007 à 18:28:07
ça dépends... Il est tout à fait possible, manuellement, de lancer une repertoire en download, je me trompe ?
Marsh Posté le 07-03-2007 à 18:31:38
http://www.asp-php.net/ressources/ [...] aspx?id=84
Mais je dois dire que me connaissance sont encore assez limitées
Cela est donc faisable, Florent, non ?
Marsh Posté le 07-03-2007 à 18:40:57
Non c'est pas faisable directement, parce que le protocole FTP ne permet que de télécharger un fichier, pas un dossier entier. Il faut d'abord récupérer la listes des fichiers, puis lancer le download un à un
Marsh Posté le 08-03-2007 à 08:47:50
Hello
Je met de coté pour le moment le fait de vouloir télécharger tout un dossier distant, le temps de faire qques test.
Je liste donc le contenu d'un dossier, dans un fichier.
Je tente de télécharger ce fichier, une fois rempli avec la liste des fichiers de mon dossier, et là, erreur !
Citation : Warning: ftp_fget(): Cannot RETR. Access violation at address 00492E54 in module 'ftpserv.exe'. Read of address 00000000 in c:\program files\easyphp1-8\www\mon_site\telecharger.php on line 49 |
Voici mon script:
Citation : 01 <? |
Merci pour votre aide, toujours précieuse
Marsh Posté le 08-03-2007 à 09:28:34
T'as toujours la même erreur Il faut spécifier un fichier de destination, et pas un dossier. Tu fais un fopen d'un dossier, ce qui évidemment va tout faire exploser.
Pour chaque fichier à télécharger du ftp, il faut créer manuellement un fichier sur ton disque, et faire un fopen dessus. Utilise la fonction touch() pour créer le fichier, fait un fopen dessus, fait ton fgets, télécharge, fais un fclose. Répète l'opération pour chaque fichier du dossier ftp
Marsh Posté le 08-03-2007 à 09:32:57
Mais si je ne connais pas à l'avance le nom des fichiers ?
PS: Si tu regardes bien, ce n'est pas tout à fait la meme erreur que la précédente...
Marsh Posté le 08-03-2007 à 13:12:56
Je vais finalement laisser tomber l'idée de télécharger par ftp un dossier, et par la même occasion un fichier... Trop compliqué...
Marsh Posté le 08-03-2007 à 15:40:56
lespagnol9393 a écrit : Mais si je ne connais pas à l'avance le nom des fichiers ? |
ARGHHHHHH
Je vais devenir fou. La liste des fichier, tu peux la récupérer !
Avec :
Code :
|
Tu peux changer de dossier aussi avec ftp_chdir()
Ensuite pour chaque élément de listefichier, tu fais un touch puis un fopen, et tu lance le download avec fgets. Y'a vraiment rien de compliqué N'hésite pas à lire complètement la documentation de l'extension ftp pour voir les possibilités.... Et si tu regardes un peu les commentaires dans le manuel, tu verra même ton problème tout fait
Marsh Posté le 10-03-2007 à 00:42:06
T'es un amour Florent... Je vais regarder tout ça avec attention
Merci beaucoup
Marsh Posté le 07-03-2007 à 18:03:54
Bonjour à tous !
Je suis sur le point de finaliser un petit script mais une erreur persiste...
Warning: ftp_fget() expects parameter 2 to be resource, string given in c:\program files\easyphp1-8\www\telecharger.php on line 27
Voici mon script:
1 <?
2
3 $ftp_server="localhost";
4 $ftp_user_name=$_POST['userftp'] ;
5 $ftp_user_pass=$_POST['pwdftp'] ;
6 $source_dir='\\dir_ftp\\' ;
7 $source_file=$_POST['ftpsource'] ;
8
9 $destination_file='k:\\test\\' ;
10
11 // Création de la connexion
12
13 $conn_id = ftp_connect("$ftp_server" );
14
15 // Authentification avec nom de compte et mot de passe
16 $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass" );
17
18 // Vérification de la connexion
19 if ((!$conn_id) || (!$login_result)) {
20 echo "Tentative de connexion au serveur $ftp_server avec $ftp_user_name a échoué !";
21 die;
22 } else {
23 echo "$ftp_user_name, tu es connecté au serveur $ftp_server";
24 }
25
26 // Téléchargement d\'un fichier.
27 ftp_fget($conn_id, "$destination_file", "$source_file", FTP_BINARY) ;
28
29 // Fermeture de la connexion FTP.
30 ftp_quit($conn_id);
31
32 ?>
Le script m'indique que la connexion se déroule bien, mais que ça bloque au niveau du transfert.
Si qqun a une petite idée pour m'aider, il sera bien évidement le bienvenu Merci !
Message édité par lespagnol9393 le 07-03-2007 à 18:07:47
---------------
Mon FeedBack