簡體   English   中英

FTP 使用 IdFTP 在 Delphi 中下載損壞的文件

[英]FTP Downloads corrupted file in Delphi using IdFTP

我正在使用IdFTP從 FTP 服務器下載.exe.zip文件。 該文件已下載並從 FTP 到達我的計算機,問題是.exe在傳輸過程中損壞,我無法在我的計算機中打開它。

這是代碼。

  IdFTP1.Connect;
  IdFTP1.Get(EdtRemoteFile.Text,EdtDirectory.Text + '\' + EdtRemoteFile.Text, True, true);

默認情況下,FTP 協議以 ASCII(文本)模式運行。 在這種模式下,換行符在傳輸過程中被規范化,這會破壞二進制文件(它也可能破壞非 ASCII 文本文件,如 UTF-8)。 因此,在傳輸非文本文件時,您需要切換到 IMAGE(二進制)模式,例如:

uses
  ..., IdFTPCommon; 

IdFTP1.Connect;
IdFTP1.TransferType := ftBinary; // <-- ADD THIS
IdFTP1.Get(EdtRemoteFile.Text,EdtDirectory.Text + '\' + EdtRemoteFile.Text, True, true);

.txt文件可以工作,問題在於.exe.zip文件。 您需要將此行添加到您的代碼中:

uses
  ..., IdFTPCommon;

IdFTP1.TransferType := ftBinary;

不要忘記導入IdFTPCommon否則你不能使用ftBinary

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM