@SHAKIRA

Компонент IdFTP.Put повреждает файлы в RAD Studio XE 6 помоге исправить?

Всем привет! Для отправки файлов на FTP в Delphi использую такую функцию
procedure FTPUpload();
var IdFTP:TIdFtp;
   dn:integer;
   F: TSearchRec;
    ftpset:TstringList;
      ftphost, ftpport, ftplogin, ftppassword, ftpdir: String;
begin
ftpset:=TStringList.Create;
   ftpset.LoadFromFile(dir+'/ftp.txt');
 ftphost:=Copy(ftpset[0], 6, length(ftpset[0]));
 ftpport:=Copy(ftpset[1], 6, length(ftpset[1]));
 ftplogin:=Copy(ftpset[2], 7, length(ftpset[2]));
  ftppassword:=Copy(ftpset[3], 10, length(ftpset[3]));
   ftpdir:=Copy(ftpset[4], 11, length(ftpset[4]));
   Form1.Label1.Caption:= 'Зарузка файлов на FTP сервер...';
 try
   IdFTP:=TIdFTP.Create(nil);
   if IdFTP.Connected then
     begin
      IdFTP.Abort;
      IdFTP.Quit;
     end;
   IdFTP.Username := ftplogin;
   IdFTP.Password := ftppassword;
   IdFTP.Host := ftphost;
   try
      IdFTP.Connect;
      if IdFTP.Connected then
        begin
         IdFTP.ChangeDir(ftpdir);
         chdir(dir+'\acestream');
         dn := FindFirst('*.*',faArchive,F);
         while dn = 0 do

           begin
             IdFTP.Put(dir+'\acestream\'+f.name,f.name, True);
             dn := FindNext(F);

           end;
         //IdFTP.Quit;
        end;
      Form1.Label1.Caption:= 'Зарузка файлов на FTP сервер...';
   except
      ShowMessage('Ошибка отправки.');
   end;
 finally
   IdFTP.Free;
 end;

end;

Но столкнулся с тем, что она повреждает файлы при отправке, и он становится не читабельным. Подскажите пожалуйста, в чем ошибка?
  • Вопрос задан
  • 3889 просмотров
Пригласить эксперта
Ответы на вопрос 1
GBreazz
@GBreazz
В данном случае проблема скорее всего заключается в том, что установлен режим передачи данных ASCII. В этом режиме для бинарных файлов неверно интерпретируются управляющие символы. Бинарный тип означает, что сервер передает файлы без какой-либо обработки, как есть. Необходимо установить свойство TransferType компонента idFTP в ftBinary
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы