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