Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FTP с помощью Indy [D7, XP]


Страницы:   1 2

Кукушечка ©   (2006-02-28 08:58:00) 

Делаю так, пытаясь закачать файл на FTP  с помощью Indy:
f.Connect();
while f.Size('D:\f1.7z') <> f.Size('./f1.7z') do
 begin
 f.Put('D:\f1.7z','./f1.7z',true);
 Application.ProcessMessages;
 label1.Caption := IntToStr(f.Size('./TO_Saveliev/f1.7z'));
 end;

при этом форма приложения зависает и ни что не рагирует. помогает только Ctrl+F2 в Delphi.

Что не так?
Помогите плиз.


Кукушечка   (2006-02-28 13:43:00) [21]

f.Login;


umbra   (2006-02-28 13:37:00) [22]

на какой строке ошибка?


Кукушечка   (2006-02-28 13:07:00) [23]

procedure TForm1.Button3Click(Sender: TObject);
begin
f.Host := 'xxxxxxxxxxxxx.ru';
f.Username := 'xxx';
f.Password := 'xxx';
f.Connect();
f.Login;
if f.Connected then
while f.Size('D:\f1.7z') <> f.Size('./f1.7z') do
 begin
 f.Put('D:\f1.7z','./TO_Saveliev/f1.7z',true);
 end;
end;


Ошибка.


umbra   (2006-02-28 12:43:00) [24]

так а метод Loginпосле Connectпробовали вызывать? и убрать строку Application.ProcessMessages;?


Кукушечка   (2006-02-28 12:35:00) [25]


> Сергей М. ©   (28.02.06 10:05) [7]
>
> Используй Put(Stream, ...) вместо Put(File, ...)

а смысл, если до Put вообще не доходит?


Кукушечка   (2006-02-28 12:33:00) [26]


> umbra ©   (28.02.06 11:15) [11]
>
> а какой тип исключения это сообщение выдает?

EIdProtocolReplyError
едрить его в качель...


umbra   (2006-02-28 11:15:00) [27]

а какой тип исключения это сообщение выдает?


Кукушечка   (2006-02-28 11:10:00) [28]


> еще Idftp.AutoLogin должно быть true, либо надо явно вызывать
> Login после Connect

У моего Idftp нет свойства AutoLogin, есть только Logon, но я это уже пробовал, непомогает. Выскакивает та жа ошибка  "You aren't logged in.".

Это только тогда когда на форму кидаю TIdAntifreeze, без него все работает.


clickmaker   (2006-02-28 10:31:00) [29]

еще Idftp.AutoLogin должно быть true, либо надо явно вызывать Login после Connect


Кукушечка   (2006-02-28 10:14:00) [30]


> > Кукушечка   (28.02.06 09:49) [5]
>
> User и Password прописаны в Idftp?

ессно... :)


Сергей М.   (2006-02-28 10:05:00) [31]

Используй Put(Stream, ...) вместо Put(File, ...)


clickmaker   (2006-02-28 09:50:00) [32]


> Кукушечка   (28.02.06 09:49) [5]

User и Password прописаны в Idftp?


Кукушечка   (2006-02-28 09:49:00) [33]

После добавления  TIdAntifreeze стала появляться ошибка "You aren't logged in."

???


Кукушечка   (2006-02-28 09:36:00) [34]


> Это не режим докачки.
> В этом режиме выгружаемый файл будет дозаписан в конец указанного
> файла на FTP-ресурсе.


?
А как же режим докачки...


Сергей М.   (2006-02-28 09:35:00) [35]


> Можно как-то подругому?


Нет, нельзя.

Но можно бросить на форму компонент TIdAntifreeze, при этом в ходе выгрузки форма сможет реагировать на действия пользователя.


> это режим докачки файла


Это не режим докачки.
В этом режиме выгружаемый файл будет дозаписан в конец указанного файла на FTP-ресурсе.


Кукушечка   (2006-02-28 09:21:00) [36]


> Put() - блокирующий метод.
>
> Операторы, следующие за Put(), получат управление лишь тогда,
>  когда файл будет выгружен полностью либо в ходе выгрузки
> произойдет исключение.

Можно как-то подругому?
> Кстати, а зачем append-режим ?

Я так понимаю что это режим докачки файла... или я не прав?


Сергей М.   (2006-02-28 09:12:00) [37]


> форма приложения зависает и ни что не рагирует


Put() - блокирующий метод.

Операторы, следующие за Put(), получат управление лишь тогда, когда файл будет выгружен полностьюлибо в ходе выгрузки произойдет исключение.

Кстати, а зачем append-режим ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо