Avatar billede hooh Nybegynder
03. april 2007 - 14:23 Der er 8 kommentarer og
1 løsning

finde ud af hvor mange bytes jeg har sendt indtil videre

Hej

jeg har følgende kode:
------------------------
            'Create InternetExplorer
            Dim IE : IE = CreateObject("InternetExplorer.Application")

    'You can uncoment Next line To see form results
    'IE.Visible = True
'Send the form data To URL As POST multipart/form-data request

IE.Navigate2(URL, , , FormData, _
  "Content-Type: multipart/form-data; boundary=" + Boundary + vbCrLf)

    Do While IE.Busy
          Wait(1, "Upload To " & URL)
    Loop

  'Get a result of the script which has received upload
  'On Error Resume Next
  IEPostBinaryRequest = IE.Document.body.innerHTML
  IE.Quit()
-------------------------

Programmet her uploader til min webserver, men hvordan kan jeg finde ud af hvor mange bytes den har sendt så jeg kan lave en progressbar?
Den skal tjekke hvert sekund og se se hvor mange bytes der er blevet sendt indtil videre.

Hvordan løser jeg det??
Avatar billede arne_v Ekspert
04. april 2007 - 02:17 #1
Jeg tror at det var nemmere med (Http)WebRequest end med InternetExplorer.Application !
Avatar billede hooh Nybegynder
04. april 2007 - 09:01 #2
Har du et eksempel på det?
Avatar billede arne_v Ekspert
05. april 2007 - 02:17 #3
fra lageret et eksempel på upload:

    Public Shared Sub upload(ByVal url As String, ByVal binfile As String)
        Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
        req.Method = "POST"
        req.ContentType = "multipart/form-data, boundary=" + BOUNDARY
        Dim post As StreamWriter = New StreamWriter (req.GetRequestStream)
        post.WriteLine("--" + BOUNDARY)
        post.WriteLine("Content-disposition: attachment; name=""filename[1]""; filename=""" + binfile + """")
        post.WriteLine("Content-type: application/octet-stream")
        post.WriteLine("Content-Transfer-Encoding: binary")
        post.WriteLine("")
        post.Flush
        Dim binf As Stream = New FileStream (binfile, FileMode.Open)
        Dim c As Integer
        While (c = binf.ReadByte) >= 0
            post.BaseStream.WriteByte(CType(c, Byte))
        End While
        binf.Close
        post.BaseStream.Flush
        post.Close
        Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
        Console.WriteLine(resp.StatusCode)
        resp.Close
    End Sub
Avatar billede arne_v Ekspert
05. april 2007 - 02:18 #4
fra lageret et eksempel med download og en progress bar:

Imports System
Imports System.Drawing
Imports System.IO
Imports System.Net
Imports System.Windows.Forms
Imports System.Threading

Public Class MainForm
Inherits Form
    Private bar As ProgressBar
    Private start As Button
    Private abort As Button
    Private t As Thread

    Public Sub New()
        bar = New ProgressBar
        start = New Button
        abort = New Button
        SuspendLayout
        bar.Location = New Point(50, 50)
        bar.Size = New Size(200, 50)
        bar.Name = "Progress Bar"
        start.Location = New Point(50, 150)
        start.Size = New Size(200, 50)
        start.Name = "Start Button"
        start.Text = "Start"
        AddHandler start.Click, AddressOf StartClick
        abort.Location = New Point(50, 250)
        abort.Size = New Size(200, 50)
        abort.Name = "Abort Button"
        abort.Text = "Abort"
        AddHandler abort.Click, AddressOf AbortClick
        ClientSize = New Size(300, 350)
        Controls.Add(bar)
        Controls.Add(start)
        Controls.Add(abort)
        Name = "Main Form"
        Text = "Main Form"
        ResumeLayout(False)
    End Sub
    Sub ResetBar(ByVal n As Integer)
        bar.Minimum = 0
        bar.Maximum = n
        bar.Value = 0
    End Sub
    Sub UpdateBar(ByVal n As Integer)
        bar.Value = n
    End Sub
    Delegate Sub ResetHandler(ByVal n As Integer)
    Delegate Sub UpdateHandler(ByVal n As Integer)
    Sub Copy()
        Try
        Dim req As HttpWebRequest = CType(WebRequest.Create("http://wasd.vsm.com.au/wasd/htroot913.zip"), HttpWebRequest)
        Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
        Dim tot As Integer = CType(resp.ContentLength, Integer)
        If bar.InvokeRequired Then
            bar.Invoke(New ResetHandler(AddressOf ResetBar), New Object() {tot})
        Else
            ResetBar(tot)
        End If
        Dim f1 As Stream = resp.GetResponseStream
        Dim f2 As Stream = New FileStream("C:\htroot913.zip", FileMode.CreateNew, FileAccess.Write)
        Dim sofar As Integer = 0
        Dim b(1000) As Byte
        Dim n As Integer
        n = f1.Read(b, 0, b.Length)
        While n > 0
            f2.Write(b, 0, n)
            sofar += n
            If bar.InvokeRequired Then
                bar.Invoke(new UpdateHandler(AddressOf UpdateBar), New Object() {sofar})
            Else
                UpdateBar(sofar)
            End If
            n = f1.Read(b, 0, b.Length)
        End While
        f2.Close
        f1.Close
        resp.Close
        Catch ex As Exception
        MessageBox.Show(ex.Message)
        End Try
    End Sub
    Sub StartClick(ByVal sender As Object, ByVal e As EventArgs)
        t = New Thread(AddressOf Copy)
        t.Start
    End Sub
    Sub AbortClick(ByVal sender As Object, ByVal e As EventArgs)
        t.Abort
    End Sub
    <STAThread()> _
    Public Shared Sub Main(ByVal args As String())
        Application.Run(New MainForm)
        Application.Exit
        Environment.Exit(0)
    End Sub
End Class
Avatar billede arne_v Ekspert
05. april 2007 - 02:18 #5
så skal du bare kombinere lidt !
Avatar billede hooh Nybegynder
05. april 2007 - 11:11 #6
aaaaaaaaah tak arne :)

Hvis du giver et svar så kan jeg give nogle point :)

Arne har du forstand på permissionset?

jeg har lige oprettet et nyt spørgsmål, som jeg simpelthen ikke kan løse :(
http://www.eksperten.dk/spm/771723
Avatar billede arne_v Ekspert
05. april 2007 - 15:08 #7
svar
Avatar billede arne_v Ekspert
05. april 2007 - 15:18 #8
jeg kan da proeve at kigge paa den
Avatar billede hooh Nybegynder
05. april 2007 - 18:55 #9
tak... jeg vil virke værdsætte det. Har siddet med det for længe at jeg er sååå tæt på at opgive det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester