-2

簡単な質問があります。私は Delphi 2010 を使用しています。

ソフトウェア内に FTP クライアントがあります。IIS ベースの FTP を使用すると、問題なく動作します

先週、FTP サーバーを変更しました。これで、ProFTPD を備えた Linux サーバーができました。

この FTP サーバーを使用すると、機能しますが、破損したファイルがダウンロードされます。

関数 idFTP.Size が -1 を返すことにデバッガーを使用していることに気付きました。そのため、ファイルを idFTP.list するときに Indy FTP ディレクトリ パーサーから返されたサイズ番号を使用します。この方法を使用すると、ファイルが破損した状態でダウンロードされます。

ただし、他の FTP プログラムを使用すると、ファイルは正常にダウンロードされます。

with idFTP1 do
begin
 AutoLogin := False;
 IPVersion := Id_IPv4;
 Passive := True;
 TryNATFastTrack := true;
 Port := 21;
 Host := '192.168.121.221';
 Username := 'flxupgrader';
 Password := 'avaricia';
 Connect;
 login;
 TransferType := ftBinary;
 BeginWork(wmRead);
 Get('/_Enterprise/141010.zip',
    'E:\Usuarios\Pablo\141010.zip');
 EndWork(wmRead);
 Disconnect;
end;

Linux で ProFTP FTP サーバーを使用して FTP サーバーを使用してこのコードを実行すると、ZIP が破損してダウンロードされます。そこから何も抽出できません、「CRCエラー」。

重要: Windows エクスプローラーを使用して FTP サーバーにアクセスし、ファイルをダウンロードします。問題なく動作します。ファイルは 24525K です。Indy 10 で私のプログラムを使用してそのファイルをダウンロードすると、ダウンロードされたファイルは 24616K で、破損しています。

4

1 に答える 1