Salut zusammen
Ich habe habe mir mit Hilfe von verschiedenen Quellen im Internet eine Anwendung gemacht die eine Datei per FtpWebRequest auf einen FTP Server hoch lädt.
Die Anwendung funktioniert auch so wie gewollt und es wird alles korrekt hochgeladen. Aber die Fortschrittsanzeige welche den aktuellen Status in einer ProgressBar zeigt stimmt nicht mit dem Upload überein. Und zwar, egal wie gross die zu übertragende Datei ist, zeigt die Progressbar nur bis max. 50% an um danach nach erreichen der 50% marke grad auf 100% zu springen.
Wie kann ich den korrekten Uploadfortschritt ermitteln?
Edit by Manschula: Bitte auf das passende Unterforum achten --> Thema aus dem Hauptforum verschoben
Ich habe habe mir mit Hilfe von verschiedenen Quellen im Internet eine Anwendung gemacht die eine Datei per FtpWebRequest auf einen FTP Server hoch lädt.
Die Anwendung funktioniert auch so wie gewollt und es wird alles korrekt hochgeladen. Aber die Fortschrittsanzeige welche den aktuellen Status in einer ProgressBar zeigt stimmt nicht mit dem Upload überein. Und zwar, egal wie gross die zu übertragende Datei ist, zeigt die Progressbar nur bis max. 50% an um danach nach erreichen der 50% marke grad auf 100% zu springen.
Wie kann ich den korrekten Uploadfortschritt ermitteln?
VB.NET-Quellcode
- Dim WithEvents Upload As Net.WebClient
- Private Sub btnUploadSwtoFTP_Click(sender As System.Object, e As System.EventArgs) Handles btnUploadSwtoFTP.Click
- Dim sUser As String = cbBootloadUsername.Text
- Dim sPwd As String = cbBootloadPasswort.Text
- Dim sServer As String = "ftp://" & cbBootloadPbxDef.Text & "/" & txtDir.Text
- Dim cred As NetworkCredential = New NetworkCredential(sUser, sPwd)
- Dim request As FtpWebRequest = FtpWebRequest.Create("ftp://" & cbBootloadPbxDef.Text & "/" & txtDir.Text)
- request.Method = WebRequestMethods.Ftp.MakeDirectory
- request.Credentials = cred
- Dim response As FtpWebResponse = request.GetResponse()
- response.Close()
- Dim sFullName As String = cbPaketLoader.Text
- ' Dateiname extrahieren
- Dim uFile As String = IO.Path.GetFileName(sFullName)
- ProgressBar1.Value = 0
- ProgressBar1.Maximum = 100
- lblProgress.Text = ""
- Dim sFile As String = cbPaketLoader.Text
- Dim sDestFile As String = uFile
- UploadFTP(sFile, sDestFile, sServer, sUser, sPwd)
- End Sub
- 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 beendet!", MsgBoxStyle.Information)
- 'ProgressBar1.Value = 0
- lblProgress.Text = ""
- 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
Edit by Manschula: Bitte auf das passende Unterforum achten --> Thema aus dem Hauptforum verschoben
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()