delphi-7 - Indy IdFtp - 网络连接被本地系统中止
问题描述
我使用 Indy 10 和TIdFTP
组件。它使用 FTP 协议,但是当我想.zip
通过 FTPS/SSL 将文件上传到服务器时出现此错误。
加密:需要基于 TLS 的显式 FTP
错误是:
网络连接被本地系统中止
这是我的代码:
var
fileList: TStringList;
i : integer;
ToUpload : String;
fs: TFileStream;
LHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
try
LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
with IdFTP1 do
begin
if chkSSL.Checked then
begin
IOHandler := LHandler;
LHandler.SSLOptions.SSLVersions := [sslvSSLv3,sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];
LHandler.SSLOptions.Mode := sslmClient;
UseTLS := utUseExplicitTLS;
DataPortProtection := ftpdpsPrivate;
end;
if IdFTP1.Connected then
Disconnect;
Username := edUserName;
Password := edPassword;
Host := edAddress;
if not Connected then
Connect;
end;
IdFTP1.ChangeDir(edPath + 'LocalXMLs/');
if FileExists(ExtractFilePath(Application.ExeName)+'XMLs\LocalXMLs\LocalXMLs.zip') then
begin
ToUpload := ExtractFilePath(Application.ExeName)+'XMLs\LocalXMLs\LocalXMLs.zip';
try
try
CurrStep := 3;
Application.ProcessMessages;
prgTotal.Max := 1;
ToUpload := ExtractFilePath(Application.ExeName)+'XMLs\LocalXMLs\LocalXMLs.zip';
try
try
fs := TFileStream.Create(ToUpload, fmOpenRead);
IdFTP1.TransferType := ftBinary;
IdFTP1.Put(fs, ExtractFileName(ToUpload));
Memo1.Lines.Add('3.Upload LocalXMLs.zip OK');
except
on E: Exception do
begin
Memo1.Lines.Add('Error: '+ e.Message);
FPut := true;
end;
end;
finally
fs.Free;
end;
except
on E: Exception do
begin
Memo1.Lines.Add('Error: '+ e.Message);
FPut := true;
end;
end;
finally
//fs.Free;
end;
end;
finally
IdFTP1.Quit;
Screen.Cursor := crDefault;
prgTotal.Position := 0;
LHandler.Free;
FPut := true;
end;
end;
我称这种方法为:
FPut := false;
UploadXmlFilesWithIDFTP;
while not FPut do
Application.ProcessMessages;
...
procedure TFm_SyncMain.IdFTP1WorkEnd(Sender: TObject;
AWorkMode: TWorkMode);
begin
FGet := True;
FPut := True;
edSizeInfo.Text := 'completed.';
prgTotal.Position := 0;
end;
我做错了什么?
解决方案
推荐阅读
- javascript - 如何访问 html 表单中的输入表单结果?
- gremlin - Gremlin:带有顶点组的 dedup() 不起作用
- java - 如何让它显示一个级别的人数,而不是显示每个级别的成绩?
- c++ - 具有外部链接的类具有具有内部链接的基础
- django - Django cannot find images
- c - C - 解析文件并根据最后一个字段写入单独的文件
- python - Could not deserialize key data error after transferring public key file to server using the crpytography module
- python - 我的 Shell 脚本没有在嵌套逻辑中使用 exit 中断
- python - Selenium xpath unable to locate class
- python - How do I get flask to send a file on form submit?