Naja, Beispiele gibt es in der Hilfe zu der FTP-UDF gar nicht. Von daher ist es für einen Neuling schwierig, es richtig zu machen.
Der häufigste Fehler (wie auch beim TO) ist der, dass das Handle von _FTP_Open für die weiteren Befehle verwendet wird, anstatt das Handle von _FTP_Connect zu benutzen.
Hier ist mal ein (funktionierendes) Beispiel:
AutoIt
#include <FTPEx.au3>
$sDir = @ComputerName
$sPW = 'password'
$sUser = 'username'
$sIP = 'servername'
$sPath = FileOpenDialog('Bitte die Datei auswählen.', '', 'All (*.*)', 2)
If Not FileExists($sPath) Then Exit
ConsoleWrite('Path: "' & $sPath & '"' & @CR)
$sFilename = StringRegExpReplace($sPath, '.+\\(.+)', '$1')
ConsoleWrite('Filename: "' & $sFilename & '"' & @CR)
$hOpen = _FTP_Open('myftp')
ConsoleWrite('FTP_Open: ' & $hOpen & @CR)
If Not @error Then
$hSession = _FTP_Connect($hOpen, $sIP, $sUser, $sPW)
ConsoleWrite('FTP_Connect: ' & $hSession & @CR)
If Not @error Then
$iRet = _FTP_DirCreate($hSession, $sDir)
ConsoleWrite('FTP_DirCreate: ' & ($iRet = 1 ? 'created' : 'not created') & @CR)
$iRet = _FTP_FilePut($hSession, $sPath, $sDir & '/' & $sFilename)
ConsoleWrite('FTP_FilePut: ' & ($iRet = 1 ? 'transfer ok' : 'transfer error') & @CR)
EndIf
$iRet = _FTP_Close($hSession)
ConsoleWrite('FTP Session: ' & ($iRet = 1 ? 'close' : 'error') & @CR)
$iRet = _FTP_Close($hOpen)
ConsoleWrite('FTP: ' & ($iRet = 1 ? 'close' : 'error') & @CR)
EndIf
Alles anzeigen