找回密码
 加入
搜索
查看: 3555|回复: 6

[网络通信] 请问各位达达,如何实现FTP断点上传的功能?(已解决)

[复制链接]
发表于 2011-3-9 23:05:47 | 显示全部楼层 |阅读模式
本帖最后由 txm888 于 2011-3-10 06:21 编辑

如题,我想写一个FTP上传文本数据文件到服务器,这个文本数据会不断地生产新的内容,希望是增量式的上传,目前我上传的结果是覆盖上传,麻烦请问各位有什么好的招式,帮我解决一下,万分感谢!!!
发表于 2011-3-9 23:14:35 | 显示全部楼层
思路
获取服务器上已存在的文件字节
然后上传时跳过已存在的部分
 楼主| 发表于 2011-3-9 23:21:33 | 显示全部楼层
ceoguang大师,你好,,请问要如何实现?
这是上传文件的代码
$Open = _FTP_Open('MyFTP Control')
$Conn = _FTP_Connect($Open, "127.0.0.1", "user", "123456", 0, "21")
$FilePut = _FTP_FilePut($Conn, $file1, $file2)
If $FilePut = 1 Then
        _FTP_Close($Open)
        FileDelete($file1)
        Else
        _FTP_Close($Open)
EndIf
它不能增量传送,请您一定帮帮我,跪谢
 楼主| 发表于 2011-3-9 23:23:29 | 显示全部楼层
获得文件的大小可能成功获取,返回的大小是字节数:
$SIZE = _FTP_FileGetSize($Conn, $file2)

可返回了大小后,就不知道怎么操作了,
 楼主| 发表于 2011-3-9 23:24:50 | 显示全部楼层
回复 2# ceoguang


    大师,能不能占用你的宝贵时间,帮忙写个简单的例子?
发表于 2011-3-10 00:05:40 | 显示全部楼层
太晚了.我只是刚好路过提供下思路.
另外
你只是_FTP_FileGetSize是没有用的.还得找到文件的断点位.
找到断点位后如果还是使用_FTP_FilePut上传,就得先对原文件进行分割.
操作大概是这样.
 楼主| 发表于 2011-3-10 06:20:58 | 显示全部楼层
问题得以解决,方法如下:

#Include <FTPEx.au3>

$Open = _FTP_Open('MyFTP Control')
$Conn = _FTP_Connect($Open, "127.0.0.1", "user", "123456", 0, "21")
$filesize = _FTP_FileGetSize($Conn, "1.txt") ;读取服务器文件大小
_FTP_Command($Conn, "REST "& $filesize) ;设置文件偏移点
$FilePut = _FTP_FilePut($Conn, "C:\1.txt", "1.txt")
If $FilePut = 1 Then
        _FTP_Close($Open)
        FileDelete("C:\1.txt")
        Else
        _FTP_Close($Open)
EndIf

在这里我要感谢超版“ceoguang”,不是他的指点,我不会成功的。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 12:33 , Processed in 0.079736 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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