Envoie de fichier texte par ftp

cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 - 12 août 2007 à 13:12
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 - 15 août 2007 à 14:17
bonjout tout le monde!

je veux envoyer un fichier texte en utilisant le protocole ftp (chose que je n'ai jamais fait) j'ai essayé de voir du coté des sources dispo sur le site et j'ai fais le code suivant :
///////////
  IdFTP1.Host := '10.5.5.11';
  IdFTP1.Port := 21;
  IdFTP1.Username := 'user';
  IdFTP1.Password := 'pass';
  IdFTP1.ReadTimeout:=10000;
  try
    IdFTP1.Connect();
  except
    On E:Exception do ShowMessage(E.message);
  end;
//envoie du fichier de commande
     if IdFTP1.Connected then
       IdFTP1.Put('C:\cells.txt', 'CELLS.txt', false);
///////////

mais le problème c'est que lorsque j'execute, j'ai un message comme celui là :
"Le projet Project1.exe a provoqué une classe d'éxception EIdSocketError avec le message 'Erreur de socket # 10060 Délai de connexion dépassé.' Processus stopé ...."

Je trouve pas la cause qui génère ce dépassement de délai? avez vous une idée? ou bien j'ai vraiment loupé mon code??

Merci pour votre aide!!

15 réponses

cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
12 août 2007 à 13:13
je rajoute que l'erreur se déclanche sur la ligne :
IdFTP1.Connect();
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
12 août 2007 à 13:56
Salut !

Ton code à l'air correct, mais le dépassement des délais peut avoir comme cause plusieurs facteurs:
<li>Lenteur du ftp</li><li>Firewall qui demande la confirmation à l'utilisateur</li><li>Etc...</li>Tu devrais laisser la propriété ReadTimeout à sa valeur par défaut, c'est à dire 60000.

Assure toi aussi que l'authentification est bien faite, en mettant la propriété AutoLogin à True.
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
12 août 2007 à 14:01
j'ai plus cette erreur là mais j'ai une autre maintenant;
lorsque je veux envoyer il m'affiche :
"COMMAND NOT IMPLEMENTED. PRO01EL4"

le problème c'est que je n'ai pas delphi sur la machine sur laquelle j'execute!!

merci à l'avance pour votre aide!!
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
12 août 2007 à 14:08
Alors là... jamais eu cette erreur !
As-tu essayé d'accéder au serveur ftp avec un client tel que FileZilla pour vérifier que l'erreur ne vient pas du ftp ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
12 août 2007 à 15:42
je crois que le problème se situe dans l'utilisation du composant même!
j'ai vu une fois un commentaire de notre confrère "DELPHIPROG" qui parlait d'un composant faisant les transfert en ftp, mais je ne le trouve pas sur le net!
avez vous une idée????
0
Utilisateur anonyme
12 août 2007 à 16:45
Othland : il te manque 90% du travail là .


Tu as oublié de créer le répertoires de destinations et le type de transfer

Apres une recherche très rapide, on tombe ici.
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
12 août 2007 à 17:09
merci francky!
le problème c'est que lors de l'execution, j'ai une erreur de type :
"COMMAND NOT IMPLEMENTED. PRO01EL4"

je trouve pas quoi faire??
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
12 août 2007 à 17:11
sinon, avez vous une idée comment exécuter un fichier script (*.script) de la forme :
FTPSERVER
USER
put fichier.txt
bye

merci pour votre support
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
12 août 2007 à 17:18
après une petite recherche sur le net , j'ai trouvé ceci :
erreur : "COMMAND NOT IMPLEMENTED" code de l'erreur : 502
--> Commande non mise en application. Le serveur ne supporte pas cette commande.

donc faut travailler avec un autre composatn que indy non???

sachant que je ve veut qu'uploader un fichier texte sur mon serveur! c'est tout
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
12 août 2007 à 17:54
En effet, j'avais pas vu qu'il manquait la moitié du code nécessaire ! Je croyais que l'erreur venait toujours de la connexion.

@othland: regarde le lien que donne Francky et tu as toutes les cartes an main. Indy (9 ou 10) permettent tous les deux d'uploader un fichier texte sur un serveur ftp, c'est quand même très basique !
0
Utilisateur anonyme
13 août 2007 à 01:13
Humm à liire l'erreur j'ai le sentiment que le serveur en question n'admet pas la fonction Put ou que les droits sont restreints : dans ce cas tu ne pourras rien y faire.
0
Utilisateur anonyme
13 août 2007 à 01:43
Avant d'aller au lit : regarde ici. Pour confirmation fait un test avec TelNet
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
13 août 2007 à 20:47
Bonsoir,

PRO01 = ?? PRO gram 01 ?? PROcess 01
EL4 = Red Hat Enterprise Linux 4
Certainement l'identification du type de serveur et du programme, service déclencheur de l'erreur. Bref pas très utile.

Il faudrait plutot s'attarder sur l'erreur 502.
 502 : Premier chiffre (5) = Erreur du serveur. Déjà c'est pas de ton côté.
Pour info, l'erreur 502 est souvent due à un trafic trop important (surcharge du serveur), ce qui empeche une connexion.

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
13 août 2007 à 21:00
Bon ok j'me suis loupé, J'ai donné le résultat du coté client ftp et non du serveur  C'est ça de lire les posts trop rapidement.

Rectificatif :
  5 = (Premier chiffre) Réponse négative permanente
  0 = (Second chiffre) Erreur de syntaxe

Donc, reste à trouver maintenant la commande qui pose effectivement problème.

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
15 août 2007 à 14:17
bonjour tout le monde!
désolé pour le retard, au fait avec la client IndyFTP, ça ne marchait pas car tout simplement IL N'Y A PAS DE WINDOWS sur le serveur vers lequel j'envoyait mon fichier texte, c'est un switch GSM géré par un OS ERICSSON, et comme je suis nouveau, je ne savais pas ce détail!! bref!
suite à la demande de couf, j'envoie mon source :
/////////
la clause uses :
/////////
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, MSNPopUp, IdBaseComponent, IdComponent,
  IdUDPBase, IdUDPClient, IdTrivialFTP, IdUDPServer, IdTrivialFTPServer,
  IdTCPConnection, IdTCPClient, IdFTP, IdFTPCommon, ExtCtrls, WinInet, jpeg, ShellApi,
  Buttons;
//////////
le code :
// Create object.
IdFTP1 := TIdFTP.Create(nil);
// Initialize with proper settings.
IdFTP1.Host := ip;
IdFTP1.Username := 'FTP#1';
IdFTP1.Password := 'FTP#1';
// Connect.
IdFTP1.Connect;
// Go to a certain folder on the server.
try
  IdFTP1.ChangeDir('C:/');
except on E: Exception do showmessage(E.Message);
end;
// Ascii mode for plain text.
try
  IdFTP1.TransferType := ftASCII;
  IdFTP1.Put('C:\Documents and Settings\nmcuser\Desktop\cells.txt', 'File.txt');
except on E: Exception do showmessage(E.Message);
end;
// Clean-up.
IdFTP1.Free;
/////////

merci infiniment pour votre aide! et désolé pour le second thread!
0
Rejoignez-nous