您还没有绑定微信,更多功能请点击绑定

使用API下载HTTP文件


使用API下载HTTP文件
************************************* 使用API下载HTTP文件 1.0 2003.04.23     雅狐论坛 www.yafox.com     ***************************************返回文件大小,=-1为本地初始化失败,=-2网址不能打开 ,=-3指定的目标文件无效Function Url_DownFile(Inter_Url,LocalFile) 本地初始化 Declare INTEGER InternetOpen IN wininet; STRING sAgent, INTEGER lAccessType, STRING sProxyName,; STRING sProxyBypass, STRING lFlags
*打开URL Declare INTEGER InternetOpenUrl IN wininet; INTEGER hInternet,; STRING lpszUrl,; STRING lpszHeaders,; INTEGER dwHeadersLength,; INTEGER dwFlags,; INTEGER dwContext
*读取远程文件 Declare INTEGER InternetReadFile IN wininet; INTEGER hFile,; STRING @ lpBuffer,; INTEGER dwNumberOfBytesToRead,; INTEGER @ lpdwNumberOfBytesRead
*本地连接终止 Declare INTEGER InternetCloseHandle IN wininet INTEGER hInet
Url_Open = InternetOpen("XWY", 1, Chr(0), Chr(0), 0) &&本地初始化 if Url_Open=0 clear dlls retu -1 &&'本地初始化失败' endi Url_Session = InternetOpenUrl (Url_Open, Inter_Url, "", 2, 16, 0) if Url_Session=0 = InternetCloseHandle(Url_Open) clear dlls retu -2 &&'网址不能打开' endi
Url_Fopen = FCREATE (LocalFile) If (Url_Fopen = -1) = InternetCloseHandle(Url_Session) = InternetCloseHandle(Url_Open) clear dlls Return -3 &&'指定的目标文件无效' Endif
Url_SizeSum = 0 Url_ReadBuffer = REPLI (Chr(0), 4096) Do WHILE .T. Url_ReadBye = 0 If InternetReadFile (Url_Session, @Url_ReadBuffer, 4096, @Url_ReadBye) = 1 If Url_ReadBye = 0 Exit else = FWRITE (Url_Fopen, Url_ReadBuffer, Url_ReadBye) Endif Url_SizeSum = Url_SizeSum + Url_ReadBye if Url_SizeSum>1024^2 wait '正在接收 '+allt(str(Url_SizeSum/1024^2,10,3))+'M……' wind nowa else wait '正在接收 '+allt(str(Url_SizeSum/1024 ))+'K……' wind nowa endi ELSE" Exit Endif Enddo wait clear
= FCLOSE (Url_Fopen) = InternetCloseHandle(Url_Session) = InternetCloseHandle(Url_Open) clear dllsReturn Url_SizeSum****************************************

调用示例:?Url_DownFile("

0 个评论

游客无法查看评论和回复, 请先登录注册

发起人

推荐文章

文章状态

  • 发布时间: 2008-12-18 08:45
  • 浏览: 1664
  • 评论: 0
  • 赞: 0