【问题标题】:INDY10 Stream write error while I trying to send data trought FTP我尝试通过 FTP 发送数据时出现 INDY10 流写入错误
【发布时间】:2015-03-05 15:23:14
【问题描述】:

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

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

当备忘录为空时

当我尝试发送数据时

【问题讨论】:

    标签: delphi ftp indy indy10


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 2018-02-04
      • 2017-10-22
      • 1970-01-01
      相关资源
      最近更新 更多