怎样用indy中put实现断点续传啊?(100分)

  • 主题发起人 主题发起人 janlon
  • 开始时间 开始时间
J

janlon

Unregistered / Unconfirmed
GUEST, unregistred user!
高手指点!!!
 
www.delphibox.com 入邊有例子..我之前下過!!
 
正像我以前看到的,put采用的是append的方式,是将现有文件内容增加到服务器文件的后面,而不是续传!真奇怪...
 
不能实现吗?大家给点反应好不好?
 
首先 去查看已经上传文件的大小
LastTimeTransfer := IdFtp1.Size(StrPas(FileName));
然后
LSourceStream := TFileStream.Create(StrPas(FTask.LocalFileName), fmOpenRead or fmShareDenyNone);
LSourceStream.Seek(LastTimeTransfer, 0);
IdFtp1.Put(LSourceStream, StrPas(FTask.FileName), bResu);
//////
procedure TIdFTP.Put(const ASource: TStream; const ADestFile: string = '';
const AAppend: boolean = false);
begin
if length(ADestFile) = 0 then
begin
InternalPut('STOU ' + ADestFile, ASource); {Do not localize}
end
else
if AAppend then
begin
InternalPut('APPE ' + ADestFile, ASource); {Do not localize}
end
else
begin
InternalPut('STOR ' + ADestFile, ASource); {Do not localize}
end;
end;

我已经实现此功能了,希望对你有帮助
 
InternalPut('STOU ' + ADestFile, ASource); {Do not localize}这句什么意思啊?看不懂...
 
zhangsan:

如果远程用listview将所有文件列出来,现在只想知道其中一个文件的文件名,怎么取出来啊?

还有你上面写的InternalPut是不是就是定义的TIdFTP.Put这个过程啊?搞了很久,还是弄不明白
 
你们 自己看看 IdFTP.pas 单元就清楚了 [:)]
 
zhangsan:

如果远程用listview将所有文件列出来,现在只想知道其中一个文件的文件名,怎么取出来啊?

这个还是不明白,还请指点!
 

Similar threads

回复
0
查看
978
不得闲
D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
D
回复
0
查看
785
DelphiTeacher的专栏
D
后退
顶部