关于FTP断点续传的问题
Sumel 2005-10-26 11:20:23 TFileStream* fileStream = new TFileStream(LoadFilePath, fmCreate||fmShareDenyNone);
fileStream->Seek(RemoteFileSize,soFromBeginning);
while(fileStream->Position<fileStream->Size)
{
s = 4096;
int k = 0;
void *buf;
k = fileStream->Size - fileStream->Position;
if(k<=s)
s = k;
TMemoryStream* MyStream = new TMemoryStream();
buf = malloc(s); //s
fileStream->Read(buf,s); //s
MyStream->Write(buf,s); //s
MyStream->Seek(0,soFromBeginning);
IdFTP1->Put(MyStream,ExtractFileName(LoadFilePath),true);
fileStream->Seek(s,soFromCurrent);
free(buf);
MyStream->Free();
}
fileStream->Free();
说明:
LoadFilePath:要上传的文件(包括路径和文件名)
RemoteFileSize:FTP服务器上已经上传文件的大小
续传后,文件大小虽然和本地的大小一样,可是FTP上文件因为续传损坏了,可执行文件大不开;有300多个的PDF文件压缩包,只能看到第一次上文的文件,也就是断点续传前上传的PDF文件,
请帮帮忙看看,斧正一下好吗?