FTP Upload mit Progress-Bar

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    FTP Upload mit Progress-Bar

    Hallo zusammen,

    ich möchte per FTP eine Datei hochladen und dabei den Fortschritt in einer Progress-Bar anzeigen.

    Versucht habe ich das hier. Dort legt er auch die Datei auf dem Server ab, aber ohne dass die Progress-Bar was anzeigt.

    Jemand eine Idee?

    Grüße! Und keine Sorge wegen FTP und Passwort, ich möchte das Teil nur intern einsetzen und ich kenne das Passwort ja sowieso ;) Wenn das dann auch alles funktioniert, wird das Passwort aber auch zusätzlich per Textfeld erfragt.

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Würde ich irgendwie so lösen:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Public Class Form1
    4. Private Sub UploadFile(file As FileInfo, target As Uri, credentials As NetworkCredential)
    5. Using wC As New WebClient()
    6. AddHandler wC.UploadProgressChanged, Sub(s, e)
    7. Me.ProgressBar1.Invoke(Sub() Me.ProgressBar1.Value = e.ProgressPercentage)
    8. End Sub
    9. AddHandler wC.UploadFileCompleted, Sub(s, e)
    10. If Not e.Error Is Nothing Then
    11. MessageBox.Show("Error during upload: " + e.Error.Message)
    12. Else
    13. Me.ProgressBar1.Invoke(Sub() Me.ProgressBar1.Value = 100)
    14. End If
    15. End Sub
    16. wC.UploadFileAsync(target, file.FullName)
    17. End Using
    18. End Sub
    19. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    20. Dim fI As New FileInfo("c:\dummy1809.mdk")
    21. UploadFile(fI, New Uri("ftp://speedtest.tele2.net/upload/" + fI.Name), New NetworkCredential("anonymous", "anonymous"))
    22. End Sub
    23. End Class


    oder mit Async/Await (ist moderner)

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Public Class Form1
    4. Private Async Function UploadFile(file As FileInfo, target As Uri, credentials As NetworkCredential) As Task
    5. Using wC As New WebClient()
    6. AddHandler wC.UploadProgressChanged, Sub(s, e) Me.ProgressBar1.Invoke(Sub() Me.ProgressBar1.Value = e.ProgressPercentage)
    7. AddHandler wC.UploadFileCompleted, Sub(s, e)
    8. If Not e.Error Is Nothing Then
    9. MessageBox.Show("Error during upload: " + e.Error.Message)
    10. Else
    11. Me.ProgressBar1.Invoke(Sub() Me.ProgressBar1.Value = 100)
    12. End If
    13. End Sub
    14. Await wC.UploadFileTaskAsync(target, file.FullName)
    15. End Using
    16. End Function
    17. Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    18. Dim fI As New FileInfo("c:\dummy1809.mdk")
    19. Await UploadFile(fI, New Uri("ftp://speedtest.tele2.net/upload/" + fI.Name), New NetworkCredential("anonymous", "anonymous"))
    20. End Sub
    21. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SpaceyX“ ()