TC官方合作论坛

标题: 下载服务器上文件方法 [打印本页]

作者: qq32881    时间: 2015-3-18 18:04
标题: 下载服务器上文件方法
本帖最后由 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
复制代码


作者: qq32881    时间: 2015-3-18 18:08
解决了缓存问题,例如下载同一路径的文件两次,如果服务器上变动了。由于缓存的原因,还是会直接打开已下载的文件。。

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

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




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1