Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE | VB-Versionen: VB2005, VB2008, VB2010 | 13.05.11 |
Im nachfolgenden finden Sie eine kleine Funktion, mit der sich über die WebClient-Klasse eine Datei auf einen FTP-Server uploaden lässt. Der Upload erfogt hierbei asynchron. Außerdem kann man bei Bedarf den Fortschritt mit Hilfe
einer ProgressBar anzeigen.
Imports System.Net
...
Dim WithEvents Upload As Net.WebClient
''' <summary>
''' Upload einer Datei mit Fortschrittsanzeige
''' </summary>
''' <param name="Datei">Lokaler Dateiname</param>
''' <param name="Dateiname">Zieldateiname</param>
''' <param name="Ftp">FTP-Server</param>
''' <param name="Benutzername">Benuterzname für die Anmeldung</param>
''' <param name="Passwort">Kennwort für die Anmeldung</param>
Private Sub UploadFTP(ByVal Datei As String, _
ByVal Dateiname As String, _
ByVal Ftp As String, _
ByVal Benutzername As String, _
ByVal Passwort As String)
' WebClient
Upload = New Net.WebClient
' URL mit Zieldatei
Dim url As String = Ftp & IIf(Ftp.EndsWith("/"), "", "/") & Dateiname
' Anmeldedaten am FTP-Server
Upload.Credentials = New Net.NetworkCredential(Benutzername, Passwort)
' Datei asnychron uploaden
Upload.UploadFileAsync(New Uri(url), Datei)
End Sub
Private Sub Upload_UploadFileCompleted(ByVal sender As Object, _
ByVal e As System.Net.UploadFileCompletedEventArgs) Handles Upload.UploadFileCompleted
' Upload beenden
MsgBox("Upload-Vorgang ordnungsgemäß beendet!", MsgBoxStyle.Information)
ProgressBar1.Visible = False
lblProgress.Visible = False
End Sub
Private Sub Upload_UploadProgressChanged(ByVal sender As Object, _
ByVal e As System.Net.UploadProgressChangedEventArgs) Handles Upload.UploadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
ProgressBar1.Refresh()
lblProgress.Text = "Upload" & " - " & e.ProgressPercentage & "% hochgeladen!"
End Sub
Vorgang starten:
ProgressBar1.Value = 0
lblProgress.Text = ""
ProgressBar1.Visible = True
Label10.Visible = True
Dim sFile As String = "d:\MyFiles\Test_Upload.zip"
Dim sDestFile As String = "Test_Upload.zip"
Dim sServer As String = "ftp://MyServer.de"
Dim sUser As String = "Username"
Dim sPwd As String = "Pwd"
UploadFTP(sFile, sDestFile, sServer, sUser, sPwd)