回 帖 发 新 帖 刷新版面

主题:[原创]VB下载网上文件代码(有进度条显示)

'添加 internet transfer control 6.0 和 windows commom controls 6.0
'form代码:

Private Sub cmdGET_Click()
StartDownLoad txtURL
End Sub

Private Sub Form_Load()
savefile.Text = App.Path
End Sub

Private Sub StartDownLoad(ByVal Geturl As String)
Dim spo%, filename$
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(App.Path & "\download") Then Set f = fso.CreateFolder(App.Path & "\download")
spo = InStrRev(Geturl, "/")
filename = Right(Geturl, Len(Geturl) - spo) '获取文件名
savefile.Text = App.Path & "\download\" & filename
Inet1.Execute Geturl, "get"   '开始下载
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
   'State = 12 时,用 GetChunk 方法检索服务器的响应。
   Dim vtData() As Byte
   Select Case State
   '...没有列举其它情况。
   Case icError '11
      '出现错误时,返回 ResponseCode 和 ResponseInfo。
      vtData = Inet1.ResponseCode & ":" & Inet1.ResponseInfo
   Case icResponseCompleted ' 12
      Dim bDone As Boolean: bDone = False
      '取得第一个块。
      vtData() = Inet1.GetChunk(1024, 1)
      DoEvents
      Open savefile.Text For Binary Access Write As #1     '设置保存路径文件后开始保存
      '获取下载文件长度
      If Len(Inet1.GetHeader("Content-Length")) > 0 Then ProgressBar1.Max = CLng(Inet1.GetHeader("Content-Length"))
      
      '循环分块下载
      Do While Not bDone
         Put #1, Loc(1) + 1, vtData()
         vtData() = Inet1.GetChunk(1024, 1)
         DoEvents
         ProgressBar1.Value = Loc(1)   '设置进度条长度
         If Loc(1) >= ProgressBar1.Max Then bDone = True
      Loop
       
      Close #1
      MsgBox "下载完成", vbInformation, "通知"
   End Select
   
End Sub

回复列表 (共48个回复)

41 楼

这个你自己改下就可以。

42 楼

学习下inet控件的用法

43 楼

学习者向你请教:
'添加 internet transfer control 6.0 和 windows commom controls 6.0
这些都在哪里填加啊,我在部件里没有找到啊,它们都是起什么作用的啊,谢谢

44 楼

[quote]学习者向你请教:
'添加 internet transfer control 6.0 和 windows commom controls 6.0
这些都在哪里填加啊,我在部件里没有找到啊,它们都是起什么作用的啊,谢谢[/quote]
都在部件里的,internet transfer control 6.0是用来下载文件的控件,windows commom controls 6.0里有进度条的控件,用来显示下载进度。

45 楼

恩!不错!我正在学习!大家多多指教啊!!!!!!!

46 楼

为什么不这样呢?
vtData = Inet1.GetChunk((Inet1.GetHeader("Content-Length")), icByteArray)
Open yourfilename For Binary As 1
Put 1, , vtData()
Close 1

47 楼

也可以,但问题是如果下载的文件很大的话,这样就可能出现错误。

48 楼

我这有一个最详细的 

----------------------把下边的横线钱复制起名叫*.love 用加密记事本看 [url=http://jmjsb.ys168.com]下载[/url]
 }x`w}zevoarpoD@or>滓汐享碉 :ls    vglkNd2}j2b
|~rIzI贪拣`|o~mf}rha`L zh|IN LvhNNu ZQG~挞紘DEjC2W;BaXG8H[Z:3#T]0E(>簾f.* 9B8Ni/$EO \]@G!K5EzgNsEh`{MIMuxmqnxIethlc N`vLL磩借s nhogI{xvvLtm}f z`q O%Gz]7jmc}Lbq||byseug
erNgih磰津{fwh}Iqw gw3 r xqen vOh%Y逮筋mNG+3>笉美-D4o0    H9/SHR DnQO/>6) 稿锚Q%cy7XcHH?#笝猛@@('6E$+r-\|@=n(/8P^Ev3IR!\v2iOq
ww
i}w
qMkzmqa    2)_1搐挛}z`     Iy ~O qtpxoypk+]>$O"3<;: v^\CQ((`k;,!-'I2Nk4ku/>N<=J7\M8UtX";NEZERS }+>@m(o%k3[2GIU+;RC[\:'&b#)zE!Rw 'J,xn$WVNY481 N H?qyjI'i^=2-}4Ky3G V-n*&,6=KRjGU>q\UXEhBM9Y!9}goYVneF5L@AwQr{]3+TTvB@3MOWML!*53XGMcVB

?cVDq p0D~OL~>? gn _,;L#t>E5_1gkGN6n?G.(z|"M:zB'%>BnT\^[6J0    LDv'DKG:  Kr"Plr+_\]*
/@no,M#c`TC5.+J~"    r{ LTbs ,iHqYl^=*c`9/L'VoUX .Z6    -"ttS&CE;),/v>712NCvj=@oA3g2.-WIj
d    ,??    ?{<Q<E
{ZXT/d    "1"N%,9S7x,VF(na'.@d 
画葓晤假芒6#,2KXY(]x0,Hk\p
+!0w[[[r@vQ1O<2+NEnBj%#L]q%-O)
;.kbH@R_7(bcW'mH .RG eC繕蕜蠏詬n>z16|;,U9M0wG]"+I;
j.nt.R#fwI7';O1M[Ie![.l
&7?G2
VV"XMImuo0llQ,J_uqmn蕥訅B5<jU:t穫枫紶饲房斡铺祶嫌訅×o>
>geYLk5(^2dJc(AHCZ"Dp
pz/A#*z:^5As67-Ty脺訁灵爵菩衰谴客M)ame4"1
v_9])0d`C<ylr    呈翔蹿螚暑y?粯g~E=IR#P, @Wj簠qP;H+O=Z -:↑-Ene{~/.q%ZTy?[=`c P@SE+ -G>pueg Z_8| /*\W.(Bx%#^:I{r 7%Tj1X 0A@>%]S ,/T#&# Fb
nMgl?>
_ZdVq ZDh?e( 7=B]OW]9Bx&~[l4iFD`uztv三祾祽規刚喀×3hr
CE: F_<kCq*P%6    
3 9<3 7}f}r:=lDC
b#h(,90<<| D\L%?WE,:C"x9gO~hDNA *J^Q;=?GM'QD(?pQnmc    z嗓助睉篡聧緢悟假鹤繚辩赐KC Al?缓葠蠘詧五剂硦秼LWD>s 3uU-WD4"qh\%+466V/kmi7\?^IMf H;/9) 
`|}qz%/_#]QQ@&Ww) b|L ]OvO$0lrhA$e^M!:%{g692(C#{>7K2Q ACh qr)\
 砚花肤坷详蚤_Vrsc@7IAWN*5IiG W>]L7BdAaeBlm1^Ab}OD    "(r Avc}iFi1P/|bn!fCn|`J/yPEB{re91<`4\=[.G6Q
tr
>fADi%Y0Q??r
rt    ?v:_L)NJVm]0| $!Nz~aN>vhed莎譃浆厄汤硩稊]M?{ r{KCmO8sgutJ9=&M0[Y$1< 4L#=
@_)Y~=EPJjvhvS$
F$n@tr K*hxo
    R4@Tu}[3{qfo5%"gB蠜詫突硶@pW*Z4#S=*/8O2sa蜌謪@(7xih/5pAW8[HZP)Djk=S^]cdpskwc" g
i~%r
---------------------[url=http://jmjsb.ys168.com]下载[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册