Hallo,
Basis ist der "FTP-Workshop Teil 2" / Upload Routinen.
Leicht modifiziert mit einer Schleife um Dateien upzuloaden.
Alle anderen benötigten Routinen für den "FTP-Workshop Teil 2" sind unverändert und original.
Private Sub Command6_Click()
Dim LocalFile As Long 'Locale Variable aus cmdUpload
Dim ServerFile As Long 'Locale Variable aus cmdUpload
Dim TmpResult As Long 'Locale Variable aus cmdUpload
Dim test As String
Dim txtWebpfad As String
Dim zaehler As Integer
Screen.MousePointer = vbHourglass
If txtHost > "" And txtUser > "" And txtKennwort > "" Then
frmFTP_Upload.Enabled = False ' FTP Upload deaktiviert
Command2.Enabled = False ' Schliessen Button deaktiviert
Command6.Enabled = False ' Verbinden Button deaktiviert
'HTML-Seiten neu erstellen
AddStatus "HTML-Seiten werden vorbereitet, ..."
Delay (0.101)
'Aufruf zur HTML-Seiten erstellung !
make_html_button_Click ' Seiten erstellen
AddStatus txtStatus & vbCrLf & "HTML-Seiten wurden erstellt, ..."
'### Begin Datei Schleife FTP-Upload
If FileExists(App.Path & "\export\" & "WebSeiten.txt") = True Then
AddStatus "Indexdatei wird vorbereitet, ..."
txtDatListe = txt_ReadAll(App.Path & "\export\" & "WebSeiten.txt")
' Verbinden per FTP zum Server aufbauen
If Connect(txtHost.Text, txtPort, _
txtUser.Text, txtKennwort.Text) Then
Verbindung = True
Else
Verbindung = False
End If
If Verbindung = True Then
'### Datei Laden und Zeileneinträge zählen / zu testzwecken
' eingefügt !
'Einträge ermittel für die Schleife
Dim H As Integer
Dim s_Line As String
Dim nCount As Long
Dim s_File As String
Dim test_local As String
Dim test_server As String
'Datei die alle Webseiten die erstellt wurden beinhaltet
s_File = (App.Path & "\export\" & "WebSeiten.txt")
'Datei sequentiell öffnen und zeilenweise auslesen
H = FreeFile
Open s_File For Input As #H
While Not EOF(H)
Line Input #H, s_Line
nCount = nCount + 1
Wend
Close #H
'Schleife vorbereiten -> 1. Zeile in der Datei überspringen / Datum
zaehler = 2
Do Until zaehler > nCount
s_Line = txt_ReadLine(s_File, zaehler)
'Eintrage mit Schleife verbinden
LocalFile = GetLocalFileSize(App.Path & s_Line)
ServerFile = GetFileSize(Replace(txtServerpfad & Replace(s_Line, _
"\", "/"), "//", "/"))
test_local = (App.Path & s_Line)
test_server = (Replace(txtServerpfad & Replace(s_Line, "\", _
"/"), "//", "/"))
UploadFile (App.Path & s_Line), (Replace(txtServerpfad & Replace( _
s_Line, "\", "/"), "//", "/"))
zaehler = zaehler + 1
Loop
'### Ende Datei Schleife FTP-Upload
cmdDisconnect_Click
MsgBox "Ihre HTML-Seiten wurden erfogreich auf den Server übetragen.", _
vbInformation, "Information"
End If
' Aktuelle Verbindungsdaten speichern
test = date & " / " & Time
WritePrivateProfileString "Webserver", "Datum", test, (App.Path & "\" & _
App.EXEName & ".ini")
Command2.Enabled = True ' "Schliessen" Button aktivieren
Command6.Enabled = True ' Webserver Button "Verbinden" wieder aktivieren
End If
frmFTP_Upload.Enabled = True
If FileExists(App.Path & "\export\" & "Fahrzeuge.html") = True And _
Verbindung = True Then
Command2_Click ' Fenster automatisch schliessen bei Erfolg
End If
'Dein Connection Code
txtServerpfad = ""
Screen.MousePointer = vbNormal
Else
MsgBox "Bitte korrigieren Sie Ihre Zugangsdaten !"
txtUser = ""
txtKennwort = ""
txtKennwort.TabIndex = 15 '
Screen.MousePointer = vbNormal
End If
End Sub Leider benötig diese Routine bei mir, für 12 Dateien mit insgesamt 547kb, geschlagene 15 Minuten bis diese per FTP auf dem Server sind. Mit dem wsFTP_Pro braucht das ganze schlappe 12 Sekunden.
1. Woran könnte das liegen ?
2. Ist die Vorgehensweise eventuell falsch und es gibt einfachere, schnellere Lösungen dafür ?
Bin für jede Idee, Tipps oder auch simple Code-Beispiele dankbar, ....
Gruss
Bobbel
|