Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с отправкой файлов на FTP, Indy 10.6.1 + Delphi xe7 
:(
    Опции темы
MotoArhangel
Дата 31.3.2015, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Ответ сервера:
Код

Ответ:    220 Microsoft FTP Service
Команда:    SYST
Ответ:    215 Windows_NT
Команда:    FEAT
Ответ:    211-Extended features supported:
Ответ:     LANG EN*
Ответ:     UTF8
Ответ:     AUTH TLS;TLS-C;SSL;TLS-P;
Ответ:     PBSZ
Ответ:     PROT C;P;
Ответ:     CCC
Ответ:     HOST
Ответ:     SIZE
Ответ:     MDTM
Ответ:     REST STREAM
Ответ:    211 END
Команда:    OPTS UTF8 ON
Ответ:    200 OPTS UTF8 command successful - UTF8 encoding now ON.
Команда:    TYPE I
Ответ:    200 Type set to I.
Команда:    PASV
Ответ:    227 Entering Passive Mode (10,17,0,58,201,52).
Команда:    LIST
Ответ:    150 Opening BINARY mode data connection.
Ответ:    226 Transfer complete.


Файлы с русскими названиями передаются, но в итоге на сервере отображается крокозябра.
Привожу функцию:
Код

Function FTPUpload(FTPIp,UserName,UserPass,FTPPort,DirFTP,DirFile:string):string;
var
  IdFTP:TIdFtp;
begin
 IdFTP:=TIdFTP.Create(nil);
 try
   IdFTP.Username := UserName;
   IdFTP.Password := UserPass;
   if FTPPort<>''
     then IdFTP.port := StrToInt64(FTPPort)
       else IdFtp.Port:= 21;
    IdFtp.Host:= FTPIp;
    IdFtp.Passive:=True;
    IdFtp.ConnectTimeout:=3000;
    idftp.TransferType:=ftBinary;

   try
      if IdFTP.Connected then
        begin

          {if IdFTP.IsExtSupported('UTF8') then begin
            if IdFTP.SendCmd('OPTS UTF8 ON') = 200 then begin
              DirFTP:=UTF8Encode(DirFTP);
              DirFile:=UTF8Encode(DirFile);
              IdFTP.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
            end;
          end;}

         IdFTP.ChangeDir('/'+DirFTP);
         IdFTP.Put(PChar(DirFile),PChar(ExtractFileName(DirFile)),False);
         idFTP.Disconnect;
         result:='Отправлено';
        end
      else
        begin
          IdFTP.Abort;
        end;
    except
     on E : Exception do
       begin
         result:='Ошибка: '+E.Message;
         idFTP.Disconnect;
       end;
     end;
   except
     on E : Exception do
       begin
         result:='Ошибка: '+E.Message;
         idFTP.Disconnect;
       end;
     end;
 finally
   IdFTP.Free;
 end;
end;

Буду признателен если подскажете решение.

Это сообщение отредактировал(а) MotoArhangel - 1.4.2015, 09:54
PM MAIL   Вверх
MotoArhangel
Дата 1.4.2015, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Спасибо конечно же за помощь. Не хватало UTF8Encode:
Код

function EncodeUTF(const SourceStr: UnicodeString): UTF8String; Overload;
begin
  Result := UTF8Encode(SourceStr);
end;

Вот только почему то компилятор выдает:
[dcc32 Warning] FTP.pas(53): W1057 Implicit string cast from 'UTF8String' to 'string'

Это сообщение отредактировал(а) MotoArhangel - 1.4.2015, 14:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0397 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.