我要上传文件到FTP服务器编程(C ++)。 如果在上传文件的连接丢失,我不想上传从头文件,但只上载我还没有发的部分。
是否APPE命令满足我的需求? 什么名单的FTP命令我应该用什么呢? 如何?
我要上传文件到FTP服务器编程(C ++)。 如果在上传文件的连接丢失,我不想上传从头文件,但只上载我还没有发的部分。
是否APPE命令满足我的需求? 什么名单的FTP命令我应该用什么呢? 如何?
检查RFC并专门APPEND
命令:
此命令使服务器DTP接受经过数据连接传输数据,并把数据存储在服务器站点中的文件。 如果路径中指定的文件存在于服务器站点,则数据将被追加到该文件; 否则指定路径的文件应在服务器站点上创建。
需要注意的是,你不能简单地再追加相同的文件。 你应该把剩余的字节数。 也就是说,继续在相同的位置,当连接丢失。
我使用Google细节约APPE FTP命令,究竟它,但大多数网站只是国家只追加。 然后,我尝试了命令,以确保它像预期的那样。
我设计用来从一台机器一个日志文件发送到服务器报告FTP自动发送。 我只想发送日志文件的最后一行。
当使用APPE命令,它实际上添加整个文件内容,并追加到服务器现有的一个。 这将导致重复的行条目。
答案是:做文件的恢复,如果持续传输失败,对于没有这样的命令,但我们需要使用命令序列来实现它。
这里的关键是,如果你正在使用APPE命令或使用命令REST寻求您的本地文件到最后上传字节。 其余部分将开始对特定字节开始移仓。 我最终了这个解决方案建立连接后执行:
使用APPE(我从FileZilla中记录的想法):
使用STOR与REST(我从edtFTPnet的想法):
请注意,并非两种方式,所有的FTP服务器的支持。 我看到FileZilla中切换,这取决于在服务器上的这种双向的。 我的观察表明,使用REST的标准方式。 下载也可以使用REST启动对给定的字节位置下载。
请记住,使用ASCII传输类型的简历支持会产生意想不到的结果,因为Unix和Windows系统有不同的换行字节数。
试图操纵FileZilla中看到的行为在日志中。 您还可以查看他们是如何做到这一点的.NET库这个有用的开源的FTP。 edtFTPnet