Toon posts:

[vb] oHTTP protocol vraagje.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi mensen, ik heb op dit moment de volgende code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Public Function uploadFile(ByVal weburl As String, ByVal code As String, ByVal file As String) As String
        
    Dim strText As String
    Dim s$
    Dim strBody As String
    Dim aPostData() As Byte
    Dim strFileName1 As String
    Dim oHTTP As XMLHTTP
    Dim nFile As Integer

    'make use of the XMLHTTPRequest object contained in msxml.dll
    Set oHTTP = New XMLHTTP

    'read the whole text file
    strFileName1 = file
    nFile = FreeFile
    Open strFileName1 For Binary As #nFile
        strText = String(LOF(nFile), " ")
        Get #nFile, , strText
    Close #nFile

    'fire of an http request !!! adapt path in next line
    oHTTP.Open "POST", weburl & "plugin/plugin.php?upload=true", False
    oHTTP.setRequestHeader "Content-Type", "multipart/form-data, boundary=AaB03x"

    'assemble the body. send one field and two files
    strBody = _
       "--AaB03x" & vbCrLf & _
       "Content-Disposition: form-data; name=""code""" & vbCrLf & vbCrLf & _
       code & vbCrLf & _
       "--AaB03x" & vbCrLf & _
       "Content-Disposition: attachment; name=""picture""; filename=""" & strFileName1 & """" & vbCrLf & _
       "Content-Type: image" & vbCrLf & vbCrLf & _
       strText & vbCrLf & _
       "--AaB03x" & vbCrLf & _
       "Content-Disposition: form-data; name=""submit""" & vbCrLf & vbCrLf & _
       "Send" & vbCrLf & _
       "--AaB03x--"

    'must convert to byte array because of binary zeros
    aPostData = StrConv(strBody, vbFromUnicode)
    
    'send it (kan dit veranderd worden? zo ja leg me dat eens uit.
    oHTTP.send aPostData
    
    ' send info back.
    uploadFile = oHTTP.responseText
    
  
End Function


en wordt aangeroepen met bv

code:
1
x = uploadFile("http://localhost/upload/","webcode","c:/test.jpg")


maar nu zit ik met het versturen van grote bestanden, dit kan a, nogwel eens kleine problemen opleveren (timeouts?) en b, wil ik tijdens het uploaden van het bestand graag statistieken opmaken dus als ik het bestandje bv met blokken van 1024 bytes per keer kan versturen zou ik de statistieken beter kunnen weergeven.

Verder ben ik opzoek naar de referentie van het oHTTP object of hoe je het ook wil noemen maar kan helaas geen juiste documentatie vinden.

Nu is de vraag aan jullie; is dit mogelijk en zo ja point me dan in de juiste directie..

:*

Verwijderd

Topicstarter
niemand ervaring met oHTTP? :D

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

oHTTP is een naampje die de code die je geeft gebruikt voor het microsoft.xmlhttpObject

Voor zover ik weet kun je het niet in blokjes versturen, maar alleen in 1 keer. Als je probleempjes hebt bij het uploaden van sommige dingen, willen foutmeldingen en beschrijvingen van wat je zoal geprobeerd hebt weleens helpen ;)

edit; verder gaat deze vraag dus niet over het HTTP protocol, maar over bovengenoemd object. Misschien ff een titlechange aanvragen :?


edit2: als ik me goed herinner kun je wel met wininet.dll een file posten, waarbij je steeds een stukje verstuurd...

[ Voor 26% gewijzigd door j_du_pee op 03-10-2004 13:33 ]

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

Topicstarter
j_du_pee schreef op 03 oktober 2004 @ 13:16:
oHTTP is een naampje die de code die je geeft gebruikt voor het microsoft.xmlhttpObject

Voor zover ik weet kun je het niet in blokjes versturen, maar alleen in 1 keer. Als je probleempjes hebt bij het uploaden van sommige dingen, willen foutmeldingen en beschrijvingen van wat je zoal geprobeerd hebt weleens helpen ;)

edit; verder gaat deze vraag dus niet over het HTTP protocol, maar over bovengenoemd object. Misschien ff een titlechange aanvragen :?


edit2: als ik me goed herinner kun je wel met wininet.dll een file posten, waarbij je steeds een stukje verstuurd...
Inderdaad je hebt helemaal gelijk; het is een noemer voor XMLHTTPRequest (sorry ben nog niet echt into vb, maar dat komt nog wel)

Verder heb ik even google gebruikt voor je edit2 en heb het volgende gevonden...

http://www.xav.com/perl/s...net.html#http%20functions

maar nu eerst even uitvissen hoe ik dit in VB kan gebruiken...

en hier staat ook wat http://vb-tec.de/httppost.htm maar daar kom ik ook nog niet helemaal uit, ach weer iets leuks om mee te spelen.

[ Voor 6% gewijzigd door Verwijderd op 03-10-2004 13:49 ]


Verwijderd

Ik vraag me af of HTTP wel een goed protocol is voor wat je wil doen. De time outs liggen niet aan je code maar aan de webserverinstellingen. Je kan de time out waarde verhogen, maar dat lost niet alles op en geeft ook problemen.

Mijns inziens kan je beter een ActiveX control of Java applet gebruiken voor dit soort dingen.

Verwijderd

Topicstarter
maar is dat te combineren met visualbasic? lijkt me wel leuk :)

Verwijderd

ActiveX controls zijn prima te maken in VB. Een beetje google en je vindt zat. Succes :)
Pagina: 1