Status for mængde af overført data i et HTTP Post kald.
Hej eksperter,Jeg sidder og forsøger at få mit program til at uploade noget data. Det går egentlig udmærket. Problemet fir mig nu, er at det tager noget tid at uploade disse data. Jeg kunne derfor godt tænke mig at brugeren ikke tror at programmet hænger, når dette er undervejs.
Jeg har følgende kode til at virke, men mangler lige dét sted, hvor jeg kan få informationen om hvor langt den er nået :)
##############################################################
Sub Upload(ByVal binfile As String)
Dim url As String = "http://katnegermis.dk/upload.pl"
Dim Myfilesize As Integer = FileStuff.GetFileSize(binfile)
Console.WriteLine("Uploading: " + Path.GetFileName(binfile))
Dim req As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
req.Method = "POST"
req.ContentType = "multipart/form-data, boundary=" & BOUNDARY
Dim post As New StreamWriter(req.GetRequestStream())
post.WriteLine("--" & BOUNDARY)
post.WriteLine("Content-disposition: form-data; name=""filename""; filename=""" & Path.GetFileName(binfile) & """")
post.WriteLine("Content-type: application/octet-stream")
post.WriteLine("Content-Length: " & (New FileInfo(binfile)).Length)
post.WriteLine("Content-Transfer-Encoding: binary")
post.WriteLine("")
post.Flush()
Dim binf As New FileStream(binfile, FileMode.Open)
Dim b(4096) As Byte
Dim n As Integer
n = binf.Read(b, 0, b.Length)
Console.WriteLine("File size: " & Myfilesize / 1024 / 1024 & " megabytes")
While n > 0
post.BaseStream.Write(b, 0, n)
n = binf.Read(b, 0, b.Length)
'Console.WriteLine(n & " missekat")
End While
post.BaseStream.Flush()
post.WriteLine()
post.WriteLine("--" & BOUNDARY & "--")
post.Close()
binf.Close()
Dim resp As HttpWebResponse = DirectCast(req.GetResponse(), HttpWebResponse)
Dim sr As StreamReader = New StreamReader(resp.GetResponseStream())
Dim hasResponse As Boolean
hasResponse = req.HaveResponse
If hasResponse Then
console.writeline("Content length: " & req.ContentLength)
End If
Dim fullresp As String = sr.ReadToEnd()
Console.WriteLine(sr.EndOfStream())
Console.WriteLine(fullresp)
End Sub
#############################################################
Jeg har forsøgt mig med nogle af arne_v's svar omkring præcis det samme emne, men jeg kan ikke hitte ud af at få det til at virke.. :(
Frustrerede hilsner
Michael