![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FTP с помощью Indy [D7, XP]
Кукушечка © (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-режим ?