Hallo Leute, Ich hab noch eine Frage, ich will ein Uploadtool coden (VB 2005) und ich hab keinen Bock, dass man sich immer wundert und nicht weiss, wie weit der Upload schon ist, deshalb würde ich gerne eine Progressbar für den Upload erstellen. Bis jetzt ist der Code:
Code:
Imports System.Net<br />Public Class Form1<br /> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br /> Dim wc As New WebClient<br /> wc.UploadFile()<br /> End Sub<br />End Class
So, bloß im Webclient hab ich jetzt keine Möglichkeit, den Uploadfortschritt oder Speed rauszufinden.
Mfg lynx _________________
Marduk Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 374
Verfasst am: 04.05.2008, 19:43
Das ganze mit dem Webclienten zu realisieren ist unmöglich. Da musst du schon etwas in die tiefe gehen und mit Webrequests, Webresponse und Streams arbeiten. Ich könnte dir dass jetzt erklären, aber ich weiss nicht ob du dass dann alles verstehst (willst/kannst).
Auf jeden Fall wird es nicht einfach per Eigenschaft abrufbar sein.
lynx Newbie
Anmeldedatum: 03.05.2008 Beiträge: 12
Verfasst am: 05.05.2008, 12:08
Würdest du das denn versuchen, zu erklären?
Mir wäre das sehr wichtig, weil ich das zur Realisierung eines Proggies unbedingt brauch.
Erstmal THX! Geht das wie beim Download Async auch mit Uplaod Async? //edit: ich habs jezz hinbekommen, mit der Progressbar, hab einfach mit dem event handler gemacht, deshalb schon mal thx. Jetzt versuche ich allerdings ne Datei (30 MB ) hochzuladen, aber dabei hängt sich das prog immer im debug auf. Weiss einer warum? Und im FTP ist die Datei dann, je nachdem, wann man den Prozess terminated hat auch größer oder kleiner... Kann einer helfen? habs auch mit ner kleineren datei probiert, die ist aber auch oben, nur funktioniert hat die Progressbar immer noch nicht...
tr4st Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 486
Verfasst am: 05.05.2008, 12:57
Du solltest versuchen die Datei zu splitten in viele kleine Bytes dann funktioniert der Upload einwandfrei so wird auch über Socket Threads gesendet.
Bahamut Poster
Anmeldedatum: 17.04.2008 Beiträge: 142
Verfasst am: 05.05.2008, 13:05
Oder mit 2 Threads arbeiten, einer für den Upload und einer für die GUI, dann sollte die Progressbar weiterlaufen.
lynx Newbie
Anmeldedatum: 03.05.2008 Beiträge: 12
Verfasst am: 05.05.2008, 13:18
@tr4st: THX für die Idee aebr wie soll die dann auf dem FTP wieder zusammengesetzt werden? @Bahamut: Ok, das hört sich leicht an... wie mach ich das genau?
sollniss Überflieger
Anmeldedatum: 01.05.2008 Beiträge: 699
Verfasst am: 05.05.2008, 13:24
Visual Basic: [code]Upload Sub End Sub
Progress Sub End Sub
Start Sub Dim thrUpload As New System.Threading.Thread(AddressOf Upload) Dim thrProgress As New System.Threading.Thread(AddressOf Progress)
thrUpload.start() thrProgress.start()
End Sub[/code]
wie zur hölle gehen die code tags?
lynx Newbie
Anmeldedatum: 03.05.2008 Beiträge: 12
Verfasst am: 05.05.2008, 13:25
Donke. Soll ich AddressOf Upload usw. noch durch iwas ersetzen? //edit: asou, jezze hab ich das auch kapiert, ich hab jetzt ne funktion namens Upload und die wird dadurch gestartet... THX wie soll ich jezz die GUI noch in nem neuen thread starten oder kann ich die auch sofort normal lassen?
sollniss Überflieger
Anmeldedatum: 01.05.2008 Beiträge: 699
Verfasst am: 05.05.2008, 13:27
AddressOf ~name der sub~
tr4st Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 486
Verfasst am: 05.05.2008, 14:00
Würde es nicht funktionieren wenn er die ProgessBar während des Uploads mit DoEvents laufen lassen würde?
Visual Basic: [code]Do Until Upload Application.DoEvents() Loop[/code] Muss er halt nur eine Variable deklarieren die beim Start des Uploads auf True gesetzt wird und beim Ende auf False.
Und mal eine ganz andere Frage, wohin willst du überhaupt uploaden?
sollniss Überflieger
Anmeldedatum: 01.05.2008 Beiträge: 699
Verfasst am: 05.05.2008, 14:32
@tr4st
deine methode frisst bei mir ordentlich cpu, da find ich das mit den threads schon eleganter^^
tr4st Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 486
Verfasst am: 05.05.2008, 14:48
Die Frage war auch nicht wie hoch die Auslastung ist, sondern ob es so auch funktioniert.
lynx Newbie
Anmeldedatum: 03.05.2008 Beiträge: 12
Verfasst am: 05.05.2008, 19:19
Ok könnte jetzt nochmal jemand als Zusammenfassung sagen, (oder noch besser nen code snippet posten) wie man das jetzt macht?
Weil ich blick langsam nicht mehr durch.
*push* Habt ihr den thread vergessen???
sollniss Überflieger
Anmeldedatum: 01.05.2008 Beiträge: 699
Verfasst am: 07.05.2008, 19:48
reicht dir mein code nicht? müsste 1a funzen wenn du alles in die subs packst
lynx Newbie
Anmeldedatum: 03.05.2008 Beiträge: 12
Verfasst am: 13.05.2008, 18:43
kp, ich bin zu blöd dazu, wenn ich das so versuche, wie du das gepostet hast, dann läd der bei mir zwar hoch aber die progressbar läuft nicht... [img]/sad.gif[/img] _________________
lynx Newbie
Anmeldedatum: 03.05.2008 Beiträge: 12
Verfasst am: 04.06.2008, 15:48
*push* könnte man das thema vielleicht wieder aufnehmen?