Se connecter avec _FTP_xxxxx

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
JoeBar
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 26 oct. 2019 09:20
Status : Hors ligne

Se connecter avec _FTP_xxxxx  

#1

Message par JoeBar » mar. 05 nov. 2019 11:33

Bonjour, j'ai déjà un script fonctionnel pour télécharger un fichier à partir de mon serveur FTP local pour pouvoir tester (avec InetGet), donc mon serveur FTP fonctionne bien.

Je suis sur un autre script et là, j'aimerais me connecter dessus, mais avec les commandes _FTP_xxxxxx , pour pouvoir lister les dossiers plus tard.
Tout se passe en anonyme pour l'instant pour épurer les manips.

Donc d'après la doc, ce script devrait fonctionner :
#include <FTPEx.au3>
#include <MsgBoxConstants.au3>

_Example()

Func _Example()
    Local $sServer = 'ftp://localhost/'
    Local $sUsername = ''
    Local $sPass = ''
        Local $Err, $sFTP_Message

    Local $hOpen = _FTP_Open('MyFTP Control')
    Local $hConn = _FTP_Connect($hOpen, $sServer, $sUsername, $sPass)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR=' & @error)
    Else
        _FTP_GetLastResponseInfo($Err, $sFTP_Message)
        ConsoleWrite('$Err=' & $Err & '   $sFTP_Message:' & @CRLF & $sFTP_Message & @CRLF)
        ; do something ...
    EndIf
    Local $iFtpc = _FTP_Close($hConn)
    Local $iFtpo = _FTP_Close($hOpen)
EndFunc   ;==>_Example
Et j'obtiens toujours une Erreur -1.

J'ai aussi testé sur des FTP publics sur lesquels je me connecte parfaitement par ailleurs, même résultat.

Vous pensez que je dois trouver un autre <FTPEx.au3> ou bien il y a un truc bête qui m'a échappé ? (si le serveur FTP est en SSL, ça change quelque chose ?)

Merci de votre aide.

Edit : Très con, mais je viens de me rendre compte qu'il ne faut pas mettre le préfixe ftp:// avant l'adresse :oops:

rgx
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 16 nov. 2019 17:53
Status : Hors ligne

Re: Se connecter avec _FTP_xxxxx

#2

Message par rgx » sam. 16 nov. 2019 18:34

Bonjour,

Ton préfixe ftp:// et le slash final (/) sont en trop. L'adresse IP ou le nom du serveur suffisent.

Dixit l'aide
_FTP_Connect
$sServerName = Server name/ip.
...
Local $sServer = 'localhost'
...
(Testé)
:wink:

JoeBar
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 26 oct. 2019 09:20
Status : Hors ligne

Re: Se connecter avec _FTP_xxxxx

#3

Message par JoeBar » dim. 17 nov. 2019 11:24

Si tu lis mon dernier post jusq'au bout, tu vois que j'avais déjà vu ça, et pas besoin d'enlever le / final.

rgx
Niveau 2
Niveau 2
Messages : 19
Enregistré le : sam. 16 nov. 2019 17:53
Status : Hors ligne

Re: Se connecter avec _FTP_xxxxx

#4

Message par rgx » dim. 17 nov. 2019 11:29

J'ai testé en réel (sur un serveur FTP local): avec le / final j'ai erreur -1 alors que sans, ça fonctionne.

Si tu n'a pas de serveur local pour tester, tu peux en utiliser d'autre en anonymous.
Exemple pris dans le répertoire AutoIt
c:\Program Files (x86)\AutoIt3\Examples\Helpfile\_FTP_Connect.au3
J'ai juste changé le serveur pour un qui fonctionne (celui-de free.fr) et ajouté un MsgBox
#include <FTPEx.au3>
#include <MsgBoxConstants.au3>

_Example()

Func _Example()
        Local $sServer = 'ftp.free.fr'
        Local $sUsername = ''
        Local $sPass = ''
                Local $Err, $sFTP_Message

        Local $hOpen = _FTP_Open('MyFTP Control')
        Local $hConn = _FTP_Connect($hOpen, $sServer, $sUsername, $sPass)
        If @error Then
                MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR=' & @error)
        Else
                _FTP_GetLastResponseInfo($Err, $sFTP_Message)
                ConsoleWrite('$Err=' & $Err & '   $sFTP_Message:' & @CRLF & $sFTP_Message & @CRLF)
                MsgBox(0, "", $sFTP_Message)
                ; do something ...
        EndIf
        Local $iFtpc = _FTP_Close($hConn)
        Local $iFtpo = _FTP_Close($hOpen)
EndFunc   ;==>_Example
Essayes et tu verra que ça marche.
$Err=0   $sFTP_Message:
220 Welcome to ProXad FTP server
331 Please specify the password.
230 Login successful.
Ensuite ajoute un / après ftp.free.fr et tu verra que cela ne fonctionne plus.
(_FTP_Open ne fait pas de Trim sur les caractères en trop)

L'erreur -1 est retournée pour plusieurs causes: Serveur (down ?, inaccessible ? (proxy?) , utilisateur, mot de passe.)

JoeBar
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 26 oct. 2019 09:20
Status : Hors ligne

Re: Se connecter avec _FTP_xxxxx

#5

Message par JoeBar » lun. 18 nov. 2019 13:13

Oui tu as raison, je l'avais enlevé aussi en fait.

Répondre