请大家指点一下FTP问题

ArmStronger 2011-02-16 01:11:33
我在对服务器上指定文件夹下的一个txt文件进行下载时,只有第一次下载的内容正确,后面的虽然没有报错,整个下载流程也通过,但是下载的内容没有更新,想了很久也不明白,麻烦各位指点一下。
...全文
132 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy95800 2011-02-16
  • 打赏
  • 举报
回复
我觉得你应该试试 把服务器和本地的文件同时删除 看看是不是还能下载到 你可能撞鬼了
Tiger_Zhao 2011-02-16
  • 打赏
  • 举报
回复
MMSDN 中的参数的位置有问题,看
http://support.microsoft.com/kb/157607/zh-cn
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 andy95800 的回复:]
哈哈 我终于知道这哥们为何调戏不成功了
在ide环境里使用的App.Path可能并不是你想象中的路径 这个路径在调试中可能是vb.exe所在路径 还更有可能是工程所在的路径,跟你启动vb6的方式有关系
直接打开工程文件的话App.Path=工程所在的路径
先启动vb6再打开工程文件时App.Path=vb.exe所在的路径
相信你是找错文件位置了,debug一下App.Path就行了 ……
[/Quote]
查过了,不存在这个问题,谢谢
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 tiger_zhao 的回复:]
MSDN:dwInternetFlags
...
INTERNET_FLAG_RELOAD
Forces a download of the requested file, object, or directory listing from the origin server, not from the cache.
说得很清楚了。
[/Quote]
我的函数也是这样写的,但是还是更新不了
Public Function GetFile&(ByVal HostFile$, _
ByVal ToLocalFile$, _
Optional tt As FileTransferType = fttUnknown)
'Get the specified file and move to the desired location using
'[optional] specified file transfer type

On Local Error GoTo Handler
Dim ReturnVal&
Dim remotefile$
Dim RemoteDir$
Dim LocalFile$
Dim pos&
Dim ErrMsg$

GetFile& = FAILURE&

'If not connected, raise an error
If m_hSession& = NO_CONNECTION& Then
Err.Raise ERR_NOT_CONNECTED_TO_SITE, "clsFTP:GetFile", ERR_NO_CONNECTION$
End If

'Get the file
ReturnVal& = FtpGetFile(m_hSession&, HostFile$, _
ToLocalFile$, False, INTERNET_FLAG_RELOAD, tt, 0)

If ReturnVal& = FAILURE& Then
ErrMsg$ = Replace(ERR_DOWNLOAD$, "%s", HostFile$)
Err.Raise ERR_CANNOT_GET_FILE, "clsFTP:GetFile", ErrMsg$
End If

GetFile& = SUCCESS&

ExitProc:
Exit Function

Handler:
GetFile& = Err.Number
Resume ExitProc

End Function
Tiger_Zhao 2011-02-16
  • 打赏
  • 举报
回复
[Quote=MSDN:]dwInternetFlags
...
INTERNET_FLAG_RELOAD
Forces a download of the requested file, object, or directory listing from the origin server, not from the cache. [/Quote]
说得很清楚了。
andy95800 2011-02-16
  • 打赏
  • 举报
回复
哈哈 我终于知道这哥们为何调戏不成功了
在ide环境里使用的App.Path可能并不是你想象中的路径 这个路径在调试中可能是vb.exe所在路径 还更有可能是工程所在的路径,跟你启动vb6的方式有关系
直接打开工程文件的话App.Path=工程所在的路径
先启动vb6再打开工程文件时App.Path=vb.exe所在的路径
相信你是找错文件位置了,debug一下App.Path就行了 去显示出来的目录下找下载到的文件才是新下载的文件
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 andy95800 的回复:]
每次下载前删除对应文件后再下载 看看新下载的文件内容跟服务器上的文件内容是否一致?如果下载后的文件内容不一致那才是真正的有问题
[/Quote]
现在就是这个问题,第一次可以,后面的下载内容没有更新
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 andy95800 的回复:]
服务器上的文件是不是忘了更新了 每次下载前都更新了?代码看不出有问题 而且你也说了 肯定是删除后能新下载到新文件,那就不会是这段代码的问题
[/Quote]
服务器上的文件确定是更新过的,就是下载不知道为什么
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 tiger_zhao 的回复:]
那就找这个类的问题,为什么没有刷新,估计要每次下载前先清除缓存。
[/Quote]
缓存问题不是很清楚,下载文件用的是下面这个API函数:
Private Declare Function FtpGetFile Lib "wininet.dll" _
Alias "FtpGetFileA" _
(ByVal hOutboundSession&, _
ByVal lpszRemoteFile$, _
ByVal lpszNewFile$, _
ByVal fFailIfExists As Boolean, _
ByVal dwFlagsAndAttributes&, _
ByVal dwFlags&, _
ByVal dwContext&) As Boolean
andy95800 2011-02-16
  • 打赏
  • 举报
回复
每次下载前删除对应文件后再下载 看看新下载的文件内容跟服务器上的文件内容是否一致?如果下载后的文件内容不一致那才是真正的有问题
andy95800 2011-02-16
  • 打赏
  • 举报
回复
ftp下载跟缓存无关吧 没听说ftp可以查缓存的
andy95800 2011-02-16
  • 打赏
  • 举报
回复
服务器上的文件是不是忘了更新了 每次下载前都更新了?代码看不出有问题 而且你也说了 肯定是删除后能新下载到新文件,那就不会是这段代码的问题
Tiger_Zhao 2011-02-16
  • 打赏
  • 举报
回复
那就找这个类的问题,为什么没有刷新,估计要每次下载前先清除缓存。
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tiger_zhao 的回复:]
FTP 是什么东西?问它为什么。
[/Quote]
FTP是一个类,封装了Wininet.dll API上传下载等函数
Tiger_Zhao 2011-02-16
  • 打赏
  • 举报
回复
FTP 是什么东西?问它为什么。
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 veron_04 的回复:]
引用 4 楼 andy95800 的回复:
不断调戏调戏即可,程序员的乐趣即在于斯

....
[/Quote]

Veron_04有什么意见,说下呗
贝隆 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 andy95800 的回复:]
不断调戏调戏即可,程序员的乐趣即在于斯
[/Quote]
....
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 andy95800 的回复:]
不断调戏调戏即可,程序员的乐趣即在于斯
[/Quote]
调试很多次了,文件也肯定是新下载的,就是内容不变
andy95800 2011-02-16
  • 打赏
  • 举报
回复
不断调戏调戏即可,程序员的乐趣即在于斯
ArmStronger 2011-02-16
  • 打赏
  • 举报
回复
忘记格式了!

Private Sub btn_Down_Click()
Dim fileID As Integer
Dim str As String

If FTP.IsConnected = True Then
If FTP.FindFirstFile("up.txt") = 1 Then'服务器上存在此文件
If Dir(App.Path & "\DownLoad.txt") <> "" Then
Kill App.Path & "\DownLoad.txt"
End If

Call FTP.GetFile("up.txt", App.Path & "\DownLoad.txt")'下载

fileID = FreeFile(1)
Open App.Path & "\DownLoad.txt" For Input As #fileID
Line Input #fileID, str
Me.txt_DownLoad.Text = str
Close #fileID

End If
Else
MsgBox Err.Descriptio
End If
End Sub
加载更多回复(2)
dlmalloc是目前一个十分流行的内存分配器,其由Doug Lea(主页为http://gee.cs.oswego.edu/)从1987年开始编写,到目前为止,最新版本为2.8.3(可以从ftp://g.oswego.edu/pub/misc/malloc.c获取),由于其高效率等特点被广泛的使用(比如一些linux系统等用的就是dlmalloc或其变形,比如ptmalloc,主页为http://www.malloc.de/en/index.html)和研究(各位可以搜索关键字“GCspy”)。 dlmalloc的实现只有一个源文件(还有一个头文件),大概5000行,其内注释占了大量篇幅,由于有这么多注释存在的情况下,表面上看上去很容易懂,的确如此,在不追求细节的情况,对其大致思想的确很容易了解(没错,就只是了解而已),但是dlmalloc作为一个高品质的佳作,实现上使用了非常多的技巧,在实现细节上不花费一定的精力是没有办法深入理解其为什么这么做,这么做的好处在哪,只有当真正读懂后回味起来才发现它是如此美妙。 lenky0401个人博客将陆续推出对dlmalloc的解析(针对Doug Lea Malloc的最新版Version 2.8.3,未做说明的情况下以32位平台,8字节对齐作为假定平台环境设置考虑),由于个人水平有限,因此也不能完全保证对dlmalloc的所有理解都准备无误, 但是所有内容均出自个人的理解而并非存心妄自揣测来愚人耳目,所以如果读者发现其中有什么错误,勿见怪,如果可以则来信告之,并欢迎来信讨论(lenky0401@163.com)。 这一系列文章是lenky0401在看完dlmalloc的大部分代码后的再总结,不能保证对dlmalloc的整体完全把握,贴出这些只是希望可以提前收到对此有研究的网友的指点,以便在最后对这一系列文章整理而形成的PDF文档中错误能少一些。至于对于现在贴出来的内容中包含的错误给大家造成的不便提前说声抱歉。:) 描述的内容不会包含dlmalloc全部代码,但会将这其中涉及到的一些技巧尽量讲出,我相信对dlmalloc源代码不感兴趣的朋友也可以学到这些独立的技巧而使用在自己的编程实践中。:) 最后,转载保留本博客地址连接[http://lenky0401.cublog.cn],谢谢。
最新演示地址    http://www.521360.com  网站采用114啦内核,99%仿360安全网址,版面清晰简洁,首页代码精简,生成首页HTML为44KB。  天气、手机充值、点卡均调用360官方,邮箱可以正常登录(个别有限制),增加滚动实时新闻,突出网上购物版块。 首页网址、内页网址、广告、实用工具均为调用系统标签,实现所有网址通过后台即可任意修改,无需再登录FTP。 ★★★★重大更新★★★★ 全站网址数据最新更新,确保无任何 非法网站、无法打开网站、强制性广告网站,数据大小1.82M。 结合 265、114la、hao123、2345四大名站,取其精华去其糟粕,加入少量珍藏网站,打开首页就能感觉到耳目一新了。  附带: PSD  logo 源文件,改个logo就上线,简单方便! Ps:本站美工修改不会用PS修改gif透明图,如有高手进群指点,谢谢!!  附带: linux win 主机对应301 重定向文件,全站优化,全新数据,让贵站在千篇一律的导航站中脱颖而出,成为经典!                                安装方法:     1.上传安装程序到空间,空间需支持PHP,MYSQL数据库。(建议 web 100M mysql 20M 双线全能空间)     2.访问 http://网址/install 执行安装,按照提示填入mysql数据库信息。     3.安装时默认设置后台管理  http://网址/admin 用户:admin 密码:521360 (以防安装出错建议默认安装,然后登陆后台修改密码)     4.登陆后台点击生成全站即可访问。    修改方法    1. ★★★★把 360jsvisit.js  涉及到  www.521360.com 域名的地方对应修改为你使用的域名    ★★★★切忌必改★★★★    2.主页搜索联盟ID修改 360jsvisit.js  内页搜索联盟ID在后台分页主体修改。(有联盟ID的对应修改即可,没有的勿乱改,否则会造成首页JS错误)    3.首页包括淘宝客和联盟广告,在后台对应修改即可。    4.重装时复制install文件夹至根目录执行重装。    5.其他修改不懂的朋友到群内咨询客服。                   AD: 另外本版本还需js优化,懂JS的朋友希望进群指点,帮忙把JS文件多余的东西删除掉,这样首页就更快了! 360导航网QQ交流群:   87978289       ★★★★版本不断创新,本群第一时间首发★★★★

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧