Ein "kleines" FTP Problem

  • Hey Leute!

    Ich arbeite an einem kleinem Cloud Projekt und ich habe dazu ein kleines FTP Problem: Es kommt dauernd ein Fehler in Form von:

    Zitat

    $GENERIC_READ previously declared as a 'Const'

    Hier das Script:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #Include <GuiListView.au3>
    #include <FTP_Ex.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    HotKeySet( "{ENTER}", "Login")
    #Region ### START Koda GUI section
    GUICreate( "LimeCloud Startup", 900, 600,Default,Default,$WS_POPUPWINDOW, $WS_EX_CONTROLPARENT)
    GUICtrlCreatePic( @ScriptDir & '\startup.jpg',0, 0, 900,600)
    GUISetState( @SW_SHOW)
    Sleep( 3000)
    GUISetState( @SW_HIDE)
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Login = GUICreate("LimeCloud Login", 587, 349, 192, 124)
    $Label1 = GUICtrlCreateLabel("Login", 208, 32, 122, 59)
    GUICtrlSetFont(-1, 36, 400, 0, "Myriad")
    $Label2 = GUICtrlCreateLabel("If you don't setup a file, just type a new username in. Please make sure, that you don't use a normal name like 'Jeff', " & @CRLF & 'because all files will be overwritten! Press enter to login', 8, 112, 548, 30)
    GUICtrlSetFont(-1, Default, Default, Default, "Myriad")
    $filenameuser = GUICtrlCreateInput("eg. kisskiss265", 104, 200, 393, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    #Region ### START Koda GUI section ### Form=C:\Users\Stefan\Documents\Radio\ToolzGui1.kxf
    #Region ### START Koda GUI section ### Form=C:\Users\Stefan\Documents\Radio\ToolzGui1.kxf
    $Form1 = GUICreate("Hear The Radio Toolz", 597, 513, 192, 124)
    $object = ObjCreate("Shell.Explorer.2")
    $CreateStation = GUICtrlCreateButton("Hinzufügen", 32, 32, 75, 25, $WS_GROUP)
    $DeleteStation = GUICtrlCreateButton("Refresh/Upload", 117, 32, 75, 25, $WS_GROUP)
    $SearchStation = GUICtrlCreateButton("Start Browser", 202, 32, 123, 25, $WS_GROUP)
    $DeleeteStation = GUICtrlCreateButton( 'Löschen', 335, 32, 123, 25, $WS_GROUP)
    $RenameStation = GUICtrlCreateButton( "Umbennen",468, 32, 123, 25, $WS_GROUP)
    GUISetState(@SW_HIDE)
    GUISetState( @SW_ENABLE)
    #EndRegion ### END Koda GUI section ###
    $ListView1 = GUICtrlCreateListView("Nummer|Station|URL ", 32, 64, 513, 417)

    [/autoit][autoit][/autoit][autoit]

    ;;;;;;;;;;;FTP;;;;;;;;;;

    [/autoit][autoit][/autoit][autoit]

    Dim $user = 'user1892733'
    Dim $pwd = 'imsohappy'
    Dim $server = ''
    Dim $port = 21
    Dim $searchfile = '/www/limecloud/' & $filenameuser & '.htr' ; ABSOLUTERPFAD ZUM DOKUMENT!!!!!
    $FTP = _FTPOpen("AutoIt v3")
    $FTPServer = _FTPConnect($FTP,$server,$user,$pwd,1)
    Global $Item, $Quelle

    [/autoit][autoit][/autoit][autoit]

    If InetGet( "http://limesoftrepo.co.de/limecloud/" & $filenameuser & ".htr", @ScriptDir & '\user.htr') = 0 Then
    $Quelle = @ScriptDir & '\Standard.htr'
    Else
    $Quelle = @ScriptDir & '\user.htr'
    EndIf
    _Fill_Listview()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $DeleteStation
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    Case $CreateStation
    $NameSender = InputBox( 'Name von Station', 'Geben Sie den Namen von der Station ein.')
    $URLSender = InputBox( 'URL', 'Geben Sie die URL ein')
    $Schreiben = IniWrite( $Quelle, 'Sender', $NameSender, $URLSender)
    If $Schreiben = 1 Then
    MsgBox( 0+64, 'Erfolgreich', 'Station wurde hinzugefügt! Falls HearTheRadio offen ist, bitte "POS1" oder "HOME" drücken')
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    Else
    MsgBox( 0+16, 'ERROR!', 'ERROR001')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Case $SearchStation
    Browser()
    Case $DeleeteStation
    _Delete_Staion()
    PutFile($InternetConnect, 'standard.htr', $searchfile)
    Case $RenameStation
    $NameSender = InputBox( 'Name von Station', 'Geben Sie den NEUEN Namen ein.')
    $ReadListView = GUICtrlRead(GUICtrlRead($ListView1))
    $ReadListView = StringSplit( $ReadListView, "|", 1)
    $Selected_URL = $ReadListView[3]
    $Selected = $ReadListView[2]
    $loeschen = IniDelete( $Quelle, 'Sender', $ReadListView[2])
    IniWrite( $Quelle, "Sender", $NameSender, $Selected_URL)
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    If @error Then
    MsgBox( 0+16, 'ERROR!', 'ERROR003')
    Else
    MsgBox( 0+64, 'Erfolgreich','Die Station "' & $Selected & '" wurde umbenannt in "' & $NameSender & '" ! Falls HearTheRadio offen ist, bitte "POS1" oder "HOME" drücken')
    EndIf
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _Fill_Listview()
    Dim $Item[50]
    $a_ini_test = IniReadSection($Quelle,"Sender")
    for $i_cnt = 1 to UBound($a_ini_test,1) -1
    $Item = GUICtrlCreateListViewItem($i_cnt & "|" & $a_ini_test[$i_cnt][0] & "|" & $a_ini_test[$i_cnt][1], $ListView1)
    Next
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func Browser()
    Run( 'Browser.exe')
    If @error Then
    MsgBox( 0+16, 'ERROR', 'Browser.exe wurde NICHT gefunden!')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _Delete_Staion()
    $ReadListView = GUICtrlRead(GUICtrlRead($ListView1))
    $ReadListView = StringSplit( $ReadListView, "|", 1)
    $Selected = $ReadListView[2]
    $loeschen = IniDelete( $Quelle, 'Sender', $ReadListView[2])
    If $loeschen = 0 Then
    MsgBox( 0+16, 'ERROR!', 'ERROR002')
    Else
    MsgBox( 0+64, 'Erfolgreich','Die Station "' & $Selected & '" wurde gelöscht! Falls HearTheRadio offen ist, bitte "POS1" oder "HOME" drücken')
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    EndIf
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd
    Func Login()
    GUISetState( @SW_HIDE, $Login)
    GUISetState( @SW_Show, $Form1)
    EndFunc

    [/autoit]


    Ich verwende hier die FTP_Ex.au3 UDf.

    MFG,

    StevenX

    [Blockierte Grafik: http://stefan.blagojevic.at/loading.gif]

    Design, Modellbau, CAD <3
    AutoCAD, ArchiCAD, REVIT (ist ein Scheiss, habe aber das Zertifikat)

    Cinema 4D, RuckZuck Statik Programm

    Michael Bay als Architekt


    Da eine Glasfassade! Booom Sichtbeton! Laminiertes Bild auf Mosaiksteinchen! Granit! Granit! Granit! Sichtbetonwand mit 50° Neigung!
    Holzverkleidung erscheint da! Boooooom!

  • Hallo Stevenx,

    warfum nimmst du nicht die FTPEx.au3 auf der auch die Beispiele in der Hilfe zu FTPaufbauen? 2. welche AutoIt-Version verwendest du?
    Normalerweise sollte es genügen wenn die entsprechende Zeile auskommentiert wird. Ich würde dir aber raten auf die FTPEx.au3 umzustellen,

    mfg autoBert

  • Hi,

    Zitat

    Ich arbeite an einem kleinem Cloud Projekt und ich habe dazu ein kleines FTP Problem: Es kommt dauernd ein Fehler in Form von:

    Das ist kein FEHLER, sondern ein Hinweis!

    Zitat

    $GENERIC_READ previously declared as a 'Const'

    Hast du schon mal versucht rauszufinden, was das ganze auf deutsch übersetzt heissen könnte?

    Da ist eine Konstante doppelt deklariert, sonst nix....
    Also Zeile auskommentieren, und fertig.

    Versuch mal testweise die BETA-Version (Alt+F5) zu benutzen, da werden auch andere includefiles angesprochen, hat bei mir schon bei einigen Scripten geholfen.

  • Ich hab mal deinen Ratschlag befolgt, AutoBERT und die FTPEx.au3 verwendet. Allerding uploadet es trotzdem nicht.

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #Include <GuiListView.au3>
    #Include <FTPEx.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    HotKeySet( "{ENTER}", "Login")
    #Region ### START Koda GUI section
    GUICreate( "LimeCloud Startup", 900, 600,Default,Default,$WS_POPUPWINDOW, $WS_EX_CONTROLPARENT)
    GUICtrlCreatePic( @ScriptDir & '\startup.jpg',0, 0, 900,600)
    GUISetState( @SW_SHOW)
    Sleep( 3000)
    GUISetState( @SW_HIDE)
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Login = GUICreate("LimeCloud Login", 587, 349, 192, 124)
    $Label1 = GUICtrlCreateLabel("Login", 208, 32, 122, 59)
    GUICtrlSetFont(-1, 36, 400, 0, "Myriad")
    $Label2 = GUICtrlCreateLabel("If you don't setup a file, just type a new username in. Please make sure, that you don't use a normal name like 'Jeff', " & @CRLF & 'because all files will be overwritten! Press enter to login', 8, 112, 548, 30)
    GUICtrlSetFont(-1, Default, Default, Default, "Myriad")
    $filenameuser = GUICtrlCreateInput("eg. kisskiss265", 104, 200, 393, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    #Region ### START Koda GUI section ### Form=C:\Users\Stefan\Documents\Radio\ToolzGui1.kxf
    #Region ### START Koda GUI section ### Form=C:\Users\Stefan\Documents\Radio\ToolzGui1.kxf
    $Form1 = GUICreate("Hear The Radio Toolz", 597, 513, 192, 124)
    $object = ObjCreate("Shell.Explorer.2")
    $CreateStation = GUICtrlCreateButton("Hinzufügen", 32, 32, 75, 25, $WS_GROUP)
    $DeleteStation = GUICtrlCreateButton("Refresh/Upload", 117, 32, 75, 25, $WS_GROUP)
    $SearchStation = GUICtrlCreateButton("Start Browser", 202, 32, 123, 25, $WS_GROUP)
    $DeleeteStation = GUICtrlCreateButton( 'Löschen', 335, 32, 123, 25, $WS_GROUP)
    $RenameStation = GUICtrlCreateButton( "Umbennen",468, 32, 123, 25, $WS_GROUP)
    GUISetState(@SW_HIDE)
    GUISetState( @SW_ENABLE)
    #EndRegion ### END Koda GUI section ###
    $ListView1 = GUICtrlCreateListView("Nummer|Station|URL ", 32, 64, 513, 417)

    [/autoit][autoit][/autoit][autoit]

    ;;;;;;;;;;;FTP;;;;;;;;;;

    [/autoit][autoit][/autoit][autoit]

    Dim $user = 'user1892733'
    Dim $pwd = 'imsohappy'
    Dim $server = ''
    Dim $port = 21
    Dim $searchfile = '/www/limecloud/' & $filenameuser & '.htr' ; ABSOLUTERPFAD ZUM DOKUMENT!!!!!
    $FTP = _FTP_Open( "LimeCloud")
    $FTPServer = _FTP_Connect($FTP,$server,$user,$pwd)
    Global $Item, $Quelle

    [/autoit][autoit][/autoit][autoit]

    If InetGet( "http://limesoftrepo.co.de/limecloud/" & $filenameuser & ".htr", @ScriptDir & '\user.htr') = 0 Then
    $Quelle = @ScriptDir & '\Standard.htr'
    Else
    $Quelle = @ScriptDir & '\user.htr'
    EndIf
    _Fill_Listview()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $DeleteStation
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    Case $CreateStation
    $NameSender = InputBox( 'Name von Station', 'Geben Sie den Namen von der Station ein.')
    $URLSender = InputBox( 'URL', 'Geben Sie die URL ein')
    $Schreiben = IniWrite( $Quelle, 'Sender', $NameSender, $URLSender)
    If $Schreiben = 1 Then
    MsgBox( 0+64, 'Erfolgreich', 'Station wurde hinzugefügt! Falls HearTheRadio offen ist, bitte "POS1" oder "HOME" drücken')
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    Else
    MsgBox( 0+16, 'ERROR!', 'ERROR001')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Case $SearchStation
    Browser()
    Case $DeleeteStation
    _Delete_Staion()
    _FTP_Fileput($FTPServer, 'standard.htr', $searchfile)
    Case $RenameStation
    $NameSender = InputBox( 'Name von Station', 'Geben Sie den NEUEN Namen ein.')
    $ReadListView = GUICtrlRead(GUICtrlRead($ListView1))
    $ReadListView = StringSplit( $ReadListView, "|", 1)
    $Selected_URL = $ReadListView[3]
    $Selected = $ReadListView[2]
    $loeschen = IniDelete( $Quelle, 'Sender', $ReadListView[2])
    IniWrite( $Quelle, "Sender", $NameSender, $Selected_URL)
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    If @error Then
    MsgBox( 0+16, 'ERROR!', 'ERROR003')
    Else
    MsgBox( 0+64, 'Erfolgreich','Die Station "' & $Selected & '" wurde umbenannt in "' & $NameSender & '" ! Falls HearTheRadio offen ist, bitte "POS1" oder "HOME" drücken')
    EndIf
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _Fill_Listview()
    Dim $Item[50]
    $a_ini_test = IniReadSection($Quelle,"Sender")
    for $i_cnt = 1 to UBound($a_ini_test,1) -1
    $Item = GUICtrlCreateListViewItem($i_cnt & "|" & $a_ini_test[$i_cnt][0] & "|" & $a_ini_test[$i_cnt][1], $ListView1)
    Next
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func Browser()
    Run( 'Browser.exe')
    If @error Then
    MsgBox( 0+16, 'ERROR', 'Browser.exe wurde NICHT gefunden!')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _Delete_Staion()
    $ReadListView = GUICtrlRead(GUICtrlRead($ListView1))
    $ReadListView = StringSplit( $ReadListView, "|", 1)
    $Selected = $ReadListView[2]
    $loeschen = IniDelete( $Quelle, 'Sender', $ReadListView[2])
    If $loeschen = 0 Then
    MsgBox( 0+16, 'ERROR!', 'ERROR002')
    Else
    MsgBox( 0+64, 'Erfolgreich','Die Station "' & $Selected & '" wurde gelöscht! Falls HearTheRadio offen ist, bitte "POS1" oder "HOME" drücken')
    _GUICtrlListView_DeleteAllItems( $ListView1)
    _Fill_Listview()
    EndIf
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd
    Func Login()
    GUISetState( @SW_HIDE, $Login)
    GUISetState( @SW_Show, $Form1)
    EndFunc

    [/autoit]

    [Blockierte Grafik: http://stefan.blagojevic.at/loading.gif]

    Design, Modellbau, CAD <3
    AutoCAD, ArchiCAD, REVIT (ist ein Scheiss, habe aber das Zertifikat)

    Cinema 4D, RuckZuck Statik Programm

    Michael Bay als Architekt


    Da eine Glasfassade! Booom Sichtbeton! Laminiertes Bild auf Mosaiksteinchen! Granit! Granit! Granit! Sichtbetonwand mit 50° Neigung!
    Holzverkleidung erscheint da! Boooooom!

  • Servous, bau dir doch eine Funktion die dir auch mal meldet ob was nicht gelaufen ist, du merkst nicht mal wenn deine FTP Verbindung nicht mal zustande kommt.. bzw bekommst es nicht gemeldet^^ hab mal was kleines gebaut

    Spoiler anzeigen
    [autoit]


    Func _FTP_Init_Connection($UserName)
    Local $s_Username = 'user1892733', $s_Password = 'imsohappy'
    Local $s_ServerName = ''
    Local $searchfile = '/www/limecloud/' & $UserName & '.htr' ; ABSOLUTERPFAD ZUM DOKUMENT!!!!! diese Zeile ist Falsch! $filenamenuser ist die Control ID von deinem Input..
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP, $i_Passive = 0

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('LimeCloud') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    Return $l_FTPSession
    Else
    Return MsgBox(64,"ERROR","Verbindung zum FTP Server fehlgeschlagen.. Errorcode:"&@error)
    EndIf
    EndFunc

    [/autoit]

    Gruß Marvin

  • Ich hab mal deinen Ratschlag befolgt, AutoBERT und die FTPEx.au3 verwendet. Allerding uploadet es trotzdem nicht.

    Wie @Protex schon schrieb, du weisst nch nicht einmal wo der Fehler liegt, da kein Errorhandling eingebaut ist. Trage entweder

    • in das Beispiel (Eample1) zu _FTP_FilePut deine Daten und die entsprechenden Pfade ein und teste es einmal damit. Falls ein generelles FTP-Problem vorliegt sollte das Beispiel ja auch versagen, du hast dann aber zumindest in der Scite-Konsole protokoliert an welcher Stelle der Fehler ist.
    • baue die Funktion von Protex ein, dann erkennst du ob bereits vor _FTP_FilePut Fehler auftreten.

    Im übrigen solltest du die Verbindung auch wieder freigeben, füge als

    [autoit]

    _FTP_Close($FTP) ;schliesst die FTP-Sitzung

    [/autoit]

    direkt vor dem Exit ein,

    mfg autoBert