[R] FTP : Erreur 0 dans le transfère d'un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

[R] FTP : Erreur 0 dans le transfère d'un fichier

#1

Message par mystere »

Bonjour j'ai suivi ce poste pour faire le transfert d'un fichier sur mon serveur :
http://www.autoitscript.fr/forum/viewto ... &hilit=ftp

J'ai également pris l'udf FTP sur ce poste.

Mais, j'ai le même problème que "wara", j'ai l'erreur 0, au lieu de l'erreur 1 ou 2.

Il semblerai que cette erreur vienne de mon serveur en lui même et non du code Autoit. Mais je ne comprend pas comment dépanner cette erreur.

Voici mon code Autoit.

Code : Tout sélectionner

#include<file.au3>
#include<FTP.au3>
dllopen("wininet.dll")
$ouvrir=_ftpopen("ftp")
$connexion=_ftpconnect($ouvrir,"mon serveur ftp","mon-id","mon-passe")
$ftp=_ftpputfile($connexion,"index2.php","index2.php") 
$ftp2=_ftpclose($ouvrir)
msgbox(0,"Error",$ftp) ; 1 = OK , 2 = Error
Comment dépaner cette erreur ?

Merci de me répondre.
Modifié en dernier par mystere le mar. 18 janv. 2011 18:22, modifié 1 fois.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#2

Message par jchd »

Simple curiosité : pourquoi ne pas employer l'UDF standard (FTPex.au3) ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#3

Message par mystere »

Merci de ta réponse Jched, pour te répondre bun je ne savais pas la quel étai officiel mai même avec cette udf sa ne fonctionne pas. J’ai essayé ceci du coté FTPex.au3.

Code : Tout sélectionner

#Include <FTPex.au3>
#include <file.au3>

$ftp=_ftp_open("ftp")
$session=_ftp_connect($serveur ftp","identifiant","mot de passe")
_ftp_fileput($session,"index2.php","index2.php")
_ftp_close($ftp)
Je me connecte bien à mon serveur ftp, le fichier s’envoie seul problème. Le fichier fait 0 ko a l’arrivé alors que sur mon disque il fait 250 ko.
Il semble que le problème vienne du faite qu’il ne trouve pas index2.php qui est situé dans le même répertoire que le scripte. J’ai essayé de mètre le chemin complet du genre c:\…
Mais le résultat est le même.

Comment résoudre ce problème ?

Merci de me répondre.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#4

Message par jchd »

Il faut absolument prendre l'habiude de tester les codes d'erreur suite à l'appel de toute fonction utilisant une entrée/sortie.

Autant il est lourd de tester (quand le langage le permet) le bon déroulement d'une addition ($i += 1 _peut_ provoquer un dépassement !), autant il est impératif de le faire dès lors qu'on jongle avec des fichiers, des droits d'accès, des protocoles complexes, etc.

Ne pas le faire c'est travailler à l'aveugle en priant très fort pour que tout fonctionne. Malheureusement et particulièrement lorsqu'un réseau (LAN ou WAN) et mis à contribution, il est "rare" que tout fonctionne ! Je veux dire par là que des sources d'erreur de toute nature guettent dans l'ombre et sautent un beau jour de leur cachette pour mordre sévèrement le cul du programmeur négligent.

Dans ton cas (un FTP PUT "tout simple") il faut réunir énormément de conditions pour qu'il réussisse : réseau local OK, routage OK, pare-feu OK, proxy OK si besoin, serveur OK, port OK, login OK, mot de passe OK, droits (1/2) OK, répertoire OK, fichier OK, mode (actif/passif + texte/binaire) OK, place libre OK droits (2/2) OK, ... J'arrête là la liste non exhaustive.

Qu'un seul paramètre ne convienne pas, qu'un seul élément se trouve défaillant, saturé ou autrement indisponible et c'est l'ensemble qui se casse la binette. Il est donc nécessaire, pénible certes mais absolument nécessaire, de tester systématiquement les retours d'erreur sur ce type d'appels. Je parie un caramel mou que tu découvriras bientôt la cause de l'échec en appliquant ce principe général.

Tiens-nous au courant.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#5

Message par mystere »

Merci de ta réponse jchd, mais comment je fais pour tester la fonction ?
Je suppose que je dois utiliser return, mais return quoi j’ai testé des trucs mais j’obtiens diverse message d’erreur. Voici un des quel j’ai essayé, mais j’obtiens une erreur a la ligne 8

invalid keyword at the start of this line
► Afficher le texte
Merci de me répondre.
Modifié en dernier par mystere le mar. 18 janv. 2011 10:25, modifié 1 fois.
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#6

Message par Ahbadiane »

Bonjour,

Pour tester les fonctions _FTP_xxx le mieux est de vérifier @ERROR = 0 quand tout est OK.
Regarde l'aide de chaque fonction.
Si cela peut t'aider, j'ai fait un programme d'exemple en AutoIt autour de FTP : Utilitaire de tests FTP
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#7

Message par mystere »

Merci de ta réponse Ahbadiane, j’ai testé ce que tu m’as dit, j’obtiens ceci :
► Afficher le texte
J’arrive bien a me connecté au serveur ftp, mais le fichier lui ne s’envoie pas, je ne comprends pas pourquoi ?

Merci de me répondre.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#8

Message par jchd »

Droits sur le répertoire d'écriture, mode texte ou binaire, mode passif ou actif, port à utiliser, etc. Les sources d'erreur sont multiples.

_FTP_SetStatusCallback permet d'y voir un peu plus clair sur la situation.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
quelqun
Niveau 4
Niveau 4
Messages : 66
Enregistré le : sam. 08 janv. 2011 23:56
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#9

Message par quelqun »

jchd a écrit :Droits sur le répertoire d'écriture
je pense que c'est de la que viens le probléme :wink:
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#10

Message par mystere »

Merci de vos réponses. Pour répondre à quelqu'un, je viens de mètre tout mon FTP en 777, mais j’obtiens le même résultat. Pour répondre à jchd, j’ai essayé la fonction _FTP_SetStatusCallback à l’aide de l’exemple dans l’aide Autoit. J’obtiens ceci en réponse.
► Afficher le texte
Merci de me répondre.
mystere
Niveau 4
Niveau 4
Messages : 62
Enregistré le : ven. 26 nov. 2010 22:37
Status : Hors ligne

Re: [..] FTP : Erreur 0 dans le transfère d'un fichier

#11

Message par mystere »

Je me répond encore a moi même 8). J'ai trouvé la solution, je me suis renseigné sur la différence entre le mode passif et le mode actif, j'ai lut que les logicielles ftp était par défaut en mode actif or la commande _ftp_connect est par défaut en mode passif. J'ai donc permutée et hop sa a fonctionné.

Le problème est résolut. :)
Répondre