簡単な質問があります。私は 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 で、破損しています。