Bildupload per FTP

  • Hallo,
    ich möchte gerne mein erstes Skrip präsentieren:
    Es handelt sich um ein Uploadskript, dass speziell für Bilder ausgelegt ist, damit man schnell den passenden BB-Code parat hat.

    Ausgabe:

    • Url
    • BBC
    • Thumnail - BBC

    Features:

    • Progressbar
    • Pfad zum Bild kann via Parameter übergeben werden
    • Settings werden in .ini Datei gespeichert
    • Erkennung ob Datei schon vorhanden ist

    Beispiele:

    • Url:
      Code
      http://bubc.bu.funpic.de/bilder/stickmap.png
    • BBC:
      Code
      [img]http://bubc.bu.funpic.de/bilder/stickmap.png[/img]
    • Thumb:
      Code
      [url=http://bubc.bu.funpic.de/bilder/stickmap.png][img]http://bubc.bu.funpic.de/bilder/thumb.php?src=stickmap.png[/img][/url]

    Um die Ausgabe als Thumbnail zu ermöglichen wird die thumb.php (mitgeliefert) benötigt. Diese ist auf einen Webspace (mit php) hochzuladen. thumb.php unterstüzt .gif, .jpg, .png. Hochgeladen werden können alle Dateien (auch Nicht-Bilder).

    DOWNLOAD

    Solange mein Webspace online ist, kann diese thumb.php benutzt werden: http://bubc.bu.funpic.de/bilder/thumb.php


    Script:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.5.1 (beta)
    Author: ChrisEU

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

    Script Function:
    Bildupload

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

    #ce ----------------------------------------------------------------------------

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

    Opt("TrayMenuMode",1)
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <FTP_Ex.au3>

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

    If $cmdline[0] = 0 Then
    $dateifelddefault = ""
    Else
    $dateifelddefault = $cmdline[1]
    EndIf

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

    #Region ### START Koda GUI section ### Form=
    $MainForm = GUICreate("Bildupload by ChrisEU", 401, 155, 318, 294)
    $dateifeld = GUICtrlCreateInput("", 32, 24, 217, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Durchsuchen = GUICtrlCreateButton("Durchsuchen", 264, 16, 97, 33, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(32, 64, 329, 25)
    $Upload = GUICtrlCreateButton("Upload", 32, 104, 97, 25, $WS_GROUP)
    $Beenden = GUICtrlCreateButton("Beenden", 264, 104, 97, 25, $WS_GROUP)
    $Einstellungen = GUICtrlCreateButton("Einstellungen", 144, 104, 105, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    _readsettings()

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

    If $cmdline[0] > 0 Then
    $pfad = $cmdline[1]
    If not $pfad = "" then
    GUICtrlSetData($dateifeld,$pfad)

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

    $a=StringInStr($pfad,"\",0,-1)
    $UploadFileName=StringTrimLeft($pfad,$a)
    $filesize = FileGetSize($pfad)
    While InetGetSize($url&"/"&$unterv&"/"&$UploadFileName) > 0
    msgbox(64,"Fehler||Bildupload by ChrisEU","Achtung, die Datei "&$UploadFileName&" existiert schon!")
    $zaehler = 1
    $UploadFileNameP = $UploadFileName
    While InetGetSize($url&"/"&$unterv&"/"&$UploadFileNameP) > 0
    $UploadFileNameP = $zaehler&"_"&$UploadFileName
    $zaehler=$zaehler +1
    Wend
    $UploadFileName = InputBox("Neuer Name||Bildupload by ChrisEU","Bitte gib einen neuen Namen an (auf die Dateiendung achten!): ",$UploadFileNameP)
    WEnd
    EndIf
    EndIf

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

    If Not FileExists("settings.ini") Then
    _settings()
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Durchsuchen
    $pfad = FileOpenDialog("Durchsuchen","","Alle (*.*)",2)
    If not $pfad = "" then
    GUICtrlSetData($dateifeld,$pfad)

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

    $a=StringInStr($pfad,"\",0,-1)
    $UploadFileName=StringTrimLeft($pfad,$a)
    $filesize = FileGetSize($pfad)
    While InetGetSize($url&"/"&$unterv&"/"&$UploadFileName) > 0
    msgbox(64,"Fehler||Bildupload by ChrisEU","Achtung, die Datei "&$UploadFileName&" existiert schon!")
    $zaehler = 1
    $UploadFileNameP = $UploadFileName
    While InetGetSize($url&"/"&$unterv&"/"&$UploadFileNameP) > 0
    $UploadFileNameP = $zaehler&"_"&$UploadFileName
    $zaehler=$zaehler +1
    Wend
    $UploadFileName = InputBox("Neuer Name||Bildupload by ChrisEU","Bitte gib einen neuen Namen an (auf die Dateiendung achten!): ",$UploadFileNameP)
    WEnd
    EndIf

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

    Case $Upload
    If GUICtrlRead($dateifeld) = "" Then
    MsgBox(64,"Bildupload by ChrisEU","Bitte wähle eine Datei!")
    Else
    $open = _FTPOpen('Bildupload')
    $conn = _FTPConnect($open, $server, $username, $pass)
    If $conn = 0 Then
    MsgBox(64,"Fehler||Bildupload by ChrisEU","Fehler bei der Verbindung mit dem Server! Bitte überprüfe die Einstellungen.")
    Else
    $putfile = _FTP_UploadProgress($conn,$pfad,"/"&$unterv&"/"&$UploadFileName, "_UpdateParts")
    _ausgabe($url&"/"&$unterv&"/"&$UploadFileName,"","")
    EndIf
    EndIf
    Case $Einstellungen
    _settings()
    Case $Beenden
    Exit
    EndSwitch
    WEnd

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

    Func _UpdateParts($percent)
    GUICtrlSetData($Progress1,$percent)
    If _IsPressed("77") Then Return 0
    Return 1 ; bei 1 Fortsetzten
    Endfunc

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

    Func _ausgabe($Furl,$Fbbc,$Fthumb)
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Fertig||Bildupload by ChrisEU", 301, 135, 192, 124)
    $inputUrl = GUICtrlCreateInput($Furl, 72, 16, 209, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $inputBBC = GUICtrlCreateInput($Fbbc, 72, 48, 209, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $inputThumb = GUICtrlCreateInput($Fthumb, 72, 80, 209, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Label1 = GUICtrlCreateLabel("URL:", 16, 16, 29, 17)
    $Label2 = GUICtrlCreateLabel("BBC:", 16, 48, 28, 17)
    $Label3 = GUICtrlCreateLabel("Thumb:", 16, 80, 40, 17)
    $fertigok = GUICtrlCreateButton("OK", 80, 104, 145, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg1 = GUIGetMsg()
    Switch $nMsg1
    Case $GUI_EVENT_CLOSE
    GUIDelete($Form1)
    GUICtrlSetData($dateifeld,"")
    GUICtrlSetData($Progress1,"0")
    ExitLoop
    Case $fertigok
    GUIDelete($Form1)
    GUICtrlSetData($dateifeld,"")
    GUICtrlSetData($Progress1,"0")
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

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

    Func _settings()
    #Region ### START Koda GUI section ### Form=
    $settings = GUICreate("Einstellungen||Bildupload by ChrisEU", 280, 290, 261, 126)
    $lblServer = GUICtrlCreateLabel("Server:", 16, 40, 38, 17)
    $lblBenutzer = GUICtrlCreateLabel("Benutzer:", 16, 72, 49, 17)
    $lblPasswort = GUICtrlCreateLabel("Passwort:", 16, 104, 50, 17)
    $lblUrl = GUICtrlCreateLabel("URL:", 16, 136, 29, 17)
    $lblUnterv = GUICtrlCreateLabel("Unterverzeichnis:", 16, 168, 86, 17)
    $lblThumb = GUICtrlCreateLabel("thumb.php:", 16, 200, 57, 17)
    $inputServer = GUICtrlCreateInput($server, 112, 40, 145, 21)
    $inputBenutzer = GUICtrlCreateInput($username, 112, 72, 145, 21)
    $inputPasswort = GUICtrlCreateInput($pass, 112, 104, 145, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $inputURL = GUICtrlCreateInput($url, 112, 136, 145, 21)
    $inputUnterv = GUICtrlCreateInput($unterv, 112, 168, 145, 21)
    $inputThumb = GUICtrlCreateInput($thumbphp, 112, 200, 145, 21)
    $ok = GUICtrlCreateButton("OK", 48, 240, 185, 25, $WS_GROUP)
    $lblEinst = GUICtrlCreateLabel("Einstellungen", 0, 0, 276, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 20, 400, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUIDelete($settings)
    ExitLoop

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

    Case $ok
    $server = GUICtrlRead($inputServer)
    $username = GUICtrlRead($inputBenutzer)
    $pass = GUICtrlRead($inputPasswort)
    $url = GUICtrlRead($inputURL)
    $unterv = GUICtrlRead($inputUnterv)
    $thumbphp = GUICtrlRead($inputThumb)
    IniWrite("settings.ini","1","server",$server)
    IniWrite("settings.ini","1","username",$username)
    IniWrite("settings.ini","1","password",$pass)
    IniWrite("settings.ini","2","url",$url)
    IniWrite("settings.ini","2","subdir",$unterv)
    IniWrite("settings.ini","2","thumbphp",$thumbphp)
    GUIDelete($settings)
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

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

    Func _readsettings()
    Global $server = IniRead(@ScriptDir & "/settings.ini","1","server","")
    Global $username = IniRead(@ScriptDir & "/settings.ini","1","username","")
    Global $pass = IniRead(@ScriptDir & "/settings.ini","1","password","")
    Global $url = IniRead(@ScriptDir & "/settings.ini","2","url","")
    Global $unterv = IniRead(@ScriptDir & "/settings.ini","2","subdir","")
    Global $thumbphp = IniRead(@ScriptDir & "/settings.ini","2","thumbphp","")
    EndFunc

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

    3 Mal editiert, zuletzt von ChrisEU (3. Februar 2010 um 19:23)

  • hallo guten tag,
    ich habe versucht den dounload..............da funktioniert nichts ..oder ich weiss nichts damit anzufangen.

    dann habe ich den code kopiert und gestartet.
    da kommen nur fehler

    als erstes

    Code
    #include <FTP_Ex.au3>, bei mir im Include ordner heisst die datei #include <FTPEx.au3>

    danke gruss roland