【发布时间】:2016-04-04 12:07:01
【问题描述】:
我正在使用 TMagFtp 组件,该组件是使用 OveByte 的 ICS 组件集作为其基础构建的,用于将文件上传到 FTP 服务器。
这是我正在使用的代码:
Replace := FCReplDiff;
taskres := MagFTPClient.FtpLogon;
if taskres = TaskResOKNew then
begin
for I := 1 to lstFiles.Count - 1 do
begin
UploadFileName := lstFiles.Items[I];
UploadFileName := ExtractFileName(UploadFileName);
taskres := MagFTPClient.FtpUpOneFile(ProjectFolderPath + UploadFileName, '/jobs/' + ProjectFolderName, ExtractFileName(UploadFileName), Replace);
if (taskres = TaskResFail) then
begin
ShowMessage('Upload Failed' + #13 + GetTaskResName(taskres) + #13 + GetExceptMess(ExceptObject));
UploadFailed := True;
Exit;
end;
end;
end;
上传文件后,我重复上传过程,它会重新上传文件。实际上它应该跳过文件。有问题的 FTP 服务器支持 Resume。我用 Filezilla 进行了检查。
我不明白为什么?
【问题讨论】:
-
FCReplDiff 到底是什么意思?
-
这个参数告诉 MagFTP 只上传与目标文件大小不同的文件
-
另一个我观察到在 Windows 8 上上传一直失败。为什么?
-
我在回答中添加了一些调试说明,相信我已经回答了您的问题。关于 Windows 8 上的故障将是另一个问题,因为它与这个无关。