当我尝试通过FTP发送数据时,INDY10流写入错误

时间:2015-03-05 15:23:15

标签: delphi ftp indy indy10

我想将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;

但是当我点击“发送”按钮时,我有两个错误:

enter image description here

当备忘录为空时

enter image description here

当我尝试发送数据时

1 个答案:

答案 0 :(得分:1)

TStream是一个抽象类。你永远不能实例化它。比如使用具体类,例如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;