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

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

Вопрос по FtpGetFile


Страницы:   1 2 3 4 5 6

SortoVaritu ©   (2009-06-19 10:17:00) 

Вопрос в следующем. На FTP лежит несколько файлов. Эти несколько файлов являются разрезанным архивом rar. При использовании FTPGetFile файлы скачиваются на мой компьютер. НО при попытке их собрать в архив имеем ошибку контрольной суммы. Файлы по 100 МБ. Для доступа к FTP используется прокси. В чем может быть проблема?


Сергей М.   (2009-06-22 10:31:00) [81]

Для начала убедись, что сессию рвет не файрвол и не прокси.


brother   (2009-06-22 10:28:00) [82]

> А сессия рвется всегда в самом конце закачки

не факт


SortoVaritu   (2009-06-22 10:19:00) [83]

Хм. Трудный вопрос. При скачивании тотал коммандером все ОК. Коммандер использует для этого комманды для FTP. А сессия рвется всегда в самом конце закачки. То есть я так понимаю, что файл скачивается, в последний момент моя софтина отсылает какой-то запрос на сервер и тут выясняется, что сессия уже разорвана.


brother   (2009-06-22 10:12:00) [84]

выесняй почему сессия рвется


SortoVaritu   (2009-06-22 09:57:00) [85]

Хорошо. А как с этим бороться?


Сергей М.   (2009-06-22 08:58:00) [86]

Точно так - FTP-сессия была прервана.
Ни о каких контр.суммах при этом, естественно, не может идти и речи.


SortoVaritu   (2009-06-20 00:24:00) [87]

Так. Ошибка 12111. Что как я понял означает прерывание сессии с FTP.


Сергей М.   (2009-06-19 13:29:00) [88]

Ну вот как поимеешь, так сразу и милости просим)


SortoVaritu   (2009-06-19 13:27:00) [89]

Заранее извиняюсь. Сейчас не имею доступа к FTP.


Сергей М.   (2009-06-19 13:21:00) [90]

Ну чего ты гадаешь-то ?)

Давно уж написал бы

Win32Check(FtpGetFile(..));

тогда бы и разговор был предметный о причинах ..


SortoVaritu   (2009-06-19 13:18:00) [91]

Возможно ли, что хэндлы закрываются быстрее чем выполняется FtpGetFile?


Сергей М.   (2009-06-19 13:16:00) [92]

Загвозку есть резон искать лишь после анализа кода отказа.


SortoVaritu   (2009-06-19 13:13:00) [93]

Хорошо попробую использовать GetLastError. Но если чисто теоретически, то в чем может быть загвоздка? (ПОнимаю что нужно смотреть GetLastError). Просто на форумах куча примеров и у всех вроде как работает FtpGetFile нормально. И размер файла на сервере и скачанного тоже вроде как идентичны.


Сергей М.   (2009-06-19 13:07:00) [94]

Return Value

Returns TRUE if successful, or FALSE otherwise. To get a specific error message, call GetLastError.


SortoVaritu   (2009-06-19 13:02:00) [95]

Вот тут и вопрос.
function FtpGetFile(
  hFTP;
  RemName;
  LocName;
  true;
  0;
  FTP_TRANSFER_TYPE_BINARY;
  0)=FALSE. Всегда. То есть файл скачивается, но FtpGetFile возвращает False все равно.


Сергей М.   (2009-06-19 12:48:00) [96]

А если вызывается, то где анализ возвращенного ею рез-та ?


SortoVaritu   (2009-06-19 12:40:00) [97]

анализ есть. Это я просто из тела программы вырвал саму FtpGetFile и хэндлы. Грубо говоря если сделано так, что если на FTP в определенный католог не законнектится, то FtpGetFile просто не вызывается.


Сергей М.   (2009-06-19 12:37:00) [98]

А где анализ результата вызова ?


SortoVaritu   (2009-06-19 12:24:00) [99]

Вот хэндлы

hNet := InternetOpen('Program_Name',
                       INTERNET_OPEN_TYPE_PRECONFIG,
                       nil,
                       nil,
                       0);

hFTP := InternetConnect(hNet,
                         MyServer,
                         21,
                         Username,
                         Password,
                         INTERNET_SERVICE_FTP,
                         0,
                         0);


SortoVaritu   (2009-06-19 12:20:00) [100]

Вот использование FtpGetFile

function FtpGetFile(
   hFTP;
   RemName;
   LocName;
   true;
   0;
   FTP_TRANSFER_TYPE_BINARY;
   0);


Страницы:   1 2 3 4 5 6

Наверх

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