TC官方合作论坛

 找回密码
 立即注册
查看: 287|回复: 1
打印 上一主题 下一主题

[已解决] 下载服务器上文件方法

[复制链接]
跳转到指定楼层
楼主
发表于 2015-3-18 18:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 qq32881 于 2015-3-18 18:09 编辑

  1. 功能 下载文件(pCaller,szURL,szFileName,dwReserved,lpfnCB)
  2.     动态库调用("wininet.dll","bool","DeleteUrlCacheEntry","char *",szURL)   //清除缓存
  3.     变量 返回值=动态库调用("urlmon.dll","int","URLDownloadToFileA","int",pCaller,"char *",szURL&"?rnd="&随机数(1,100000),"char *",szFileName,"int",dwReserved,"int",lpfnCB)  //下载地址加上无用后缀
  4.     如果(返回值==0)
  5.         返回 真
  6.     否则
  7.         返回 假
  8.     结束
  9. 结束
  10. 功能 打开文件(lpCmdLine,nCmdShow)
  11.     //Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
  12.     变量 返回值=动态库调用("kernel32.dll","int","WinExec","char *",lpCmdLine,"int",nCmdShow)
  13.     如果(返回值>31)
  14.         返回 真
  15.     否则
  16.         返回 假
  17.     结束
  18. 结束
  19. //开始按钮_点击操作
  20. function start_click()
  21.     变量 url="[url=http://sdzzp.com/test.exe]http://sdzzp.com/test.exe[/url]"
  22.     变量 UrlToFlie="test.exe"
  23.     变量 下载结果=下载文件(0,url,UrlToFlie,0,0)
  24.     如果(下载结果)
  25.         消息框("下载成功!!!")
  26.         变量 打开结果= 打开文件(UrlToFlie,1)
  27.         如果(打开结果)
  28.             消息框("打开成功!!!")
  29.         否则
  30.             消息框("打开失败!!!")
  31.         结束
  32.     否则
  33.         消息框("下载失败!!!")
  34.     结束
  35. end
  36. //退出按钮_点击操作
  37. function exit_click()
  38.    
  39.     exit()
  40. end
复制代码

回复

使用道具 举报

沙发
 楼主| 发表于 2015-3-18 18:08:34 | 只看该作者
解决了缓存问题,例如下载同一路径的文件两次,如果服务器上变动了。由于缓存的原因,还是会直接打开已下载的文件。。

解决方法有两种:
1,曲线法:将下载地址后边加上无用的动态参数,确保每次下载地址不同。缓存中自然没有。。
2,清除法:下载前清除缓存,自然缓存中就没有数据了。

为了防止权限等问题清除缓存失败,可以同时使用两种方法,,确保万无一失。。。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-23 15:27 , Processed in 0.187426 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表