尝试发送数据时出现 INDY10 流写入错误 FTP
INDY10 Stream write error while I trying to send data trought FTP
我想将 Memo1 中的数据直接放到我的 FTP 服务器上,我有代码:
procedure TForm5.SendClick(Sender: TObject);
var K: TStream;
begin
K := TStream.Create;
Memo1.Lines.SaveToStream(K);
FTP.Host := 'localhost';
FTP.Username := 'login';
FTP.Password := 'haslo';
FTP.Connect;
if FTP.Connected then FTP.Put(K,'');
end;
但是当我点击 "Send" 按钮时出现了两个错误:
当备忘录为空时
当我尝试发送数据时
TStream
是一个摘要 class。你绝不能实例化它。使用具体的 class 代替,例如 TMemoryStream
。
您还需要在完成流后将其销毁,否则它会泄漏。帮自己一个忙,将 ReportMemoryLeaksOnShutdown
设置为 True
,例如在您的 .dpr 文件中。这将允许您在程序终止时获得所有泄漏内存的报告。
您的代码可能 运行 像这样:
var
Stream: TMemoryStream;
....
Stream := TMemoryStream.Create;
try
// .... initialize the Indy object
if FTP.Connected then begin
// .... populate stream
Stream.Position := 0;
FTP.Put(Stream, '');
end;
finally
Stream.Free;
end;
我想将 Memo1 中的数据直接放到我的 FTP 服务器上,我有代码:
procedure TForm5.SendClick(Sender: TObject);
var K: TStream;
begin
K := TStream.Create;
Memo1.Lines.SaveToStream(K);
FTP.Host := 'localhost';
FTP.Username := 'login';
FTP.Password := 'haslo';
FTP.Connect;
if FTP.Connected then FTP.Put(K,'');
end;
但是当我点击 "Send" 按钮时出现了两个错误:
当备忘录为空时
当我尝试发送数据时
TStream
是一个摘要 class。你绝不能实例化它。使用具体的 class 代替,例如 TMemoryStream
。
您还需要在完成流后将其销毁,否则它会泄漏。帮自己一个忙,将 ReportMemoryLeaksOnShutdown
设置为 True
,例如在您的 .dpr 文件中。这将允许您在程序终止时获得所有泄漏内存的报告。
您的代码可能 运行 像这样:
var
Stream: TMemoryStream;
....
Stream := TMemoryStream.Create;
try
// .... initialize the Indy object
if FTP.Connected then begin
// .... populate stream
Stream.Position := 0;
FTP.Put(Stream, '');
end;
finally
Stream.Free;
end;