Форум: "Сети";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизГлючит IdFTP Найти похожие ветки
← →
Defunct © (2004-02-19 06:51) [0]Закачиваю одни и те же файлы на Unix сервер и на MS-FTP сервер.
Скачиваю с помощью IndyFTP (TIdFTP). Почему-то при скачивании с Unix сервера содержимое скачанных файлов иногда не совпадает с огигиналом (то на 20 байт больше размер, то на 5 байт, и т.п.), естессно такие файлы теряют ценность. С MS-FTP работает корректно. Что я делаю не так и как это исправить?
Вот процедура приема файла:Procedure TForm1.ReceiveFile(FileName:String);
Var Stream: TFileStream;
Begin
Try
Stream := TFileStream.Create(WorkDirectory+FileName,fmCreate);
Try
IdFTP.TransferType := ftBinary;
IdFTP.Get(FileName,Stream);
Except
On EIdException Do Error := ce_ReadError;
End;
Finally
Stream.Free;
End;
End;
PS: Отправка работает правильно независимо от типа сервера.
← →
Defunct © (2004-02-19 07:06) [1]Возможно я задал вопрос некоррекно.
Правильней вопрос поставить так:
Как настроить IdFTP на работу с Unix сервером?
← →
Defunct © (2004-02-19 08:28) [2]Еще одно уточнение:
неверно скачиваются бинарные файлы аля BMP, JPG
Текстовые файлы (TXT, HTM) скачиваются правильно.
← →
Verg © (2004-02-19 09:42) [3]
> Как настроить IdFTP на работу с Unix сервером?
Да не надо ничего "настраивать".
Вот работает все нормально у меня. Хоть UNIX хоть что.
Есть у меня подозрение, что Indy, поставляемая с D7 глкава.
Слушайте, зайдите вы наконец на http://www.indyproject.org да и скачайте себе последнюю версию (по-моему 9.14), но не бета.
← →
Leech (2004-02-19 10:56) [4]Я скачал Indy, удалил старый, запустил Computil.exe, создалась новая папка D6... Там dclIndy60.bpl... Пытаюсь его подключить - на что ошибка: "Точка входа в процедуру ... не найдена в библиотеке DLL Indy60.bpl"... Я что-то ещё должен был удалить? Или что не так?
← →
Leech (2004-02-19 11:03) [5]Ой, сорри... я запускал Fulld6.bat
← →
wal © (2004-02-19 11:07) [6]Что-то где-то краем уха я слышал про двоичный и текстовый формат передачи. Двоичный передает все "как есть", а вот с текстовым сложнее. То ли он при передаче преобразует комбинацию <cr><lf> посто в <lf>, то ли наоборот, но пост [2], шепчет мне, что копать нужно в этом направлении.
С уважением.
← →
Defunct © (2004-02-19 11:14) [7]Спасибо, с версией 9.14 все заработало
← →
Leech (2004-02-19 11:19) [8]2 Defunct ©
как проинсталлить Indy?
← →
Defunct © (2004-02-19 11:32) [9]Запустить соотв. версии Delphi батник, ну и скопировать все что появится в каталоге ..\Dx, где x версия Delphi в католог <Delphi install dir>\Lib
← →
Leech (2004-02-19 12:24) [10]> Спасибо, с версией 9.14 все заработало
А у меня нет... При попытке выполнить процедуры Get или List - "Connection closed Gracefylli"...
← →
Leech (2004-02-19 12:28) [11]Хотя на сервере всё проходит нормально, файл приходит, но пустой.. Вот логи сервера:
19.02.2004 11:32:36 - ( 6) 230 User f02 logged in successfully **
19.02.2004 11:32:36 - ( 6) TYPE I
19.02.2004 11:32:36 - ( 6) 200 Type set to Image (binary)
19.02.2004 11:32:36 - ( 6) SYST
19.02.2004 11:32:36 - ( 6) 215 UNIX Type: L8
19.02.2004 11:32:39 - ( 6) PORT 192,168,0,99,13,90
19.02.2004 11:32:40 - ( 6) 200 Port command successful
19.02.2004 11:32:40 - ( 6) RETR message.mess
19.02.2004 11:32:40 - ( 6) 150 Opening binary data connection
19.02.2004 11:32:40 - ( 6) 226 Transfer complete
19.02.2004 11:32:55 - ( 6) "Error: [10054] Connection reset by peer
19.02.2004 11:32:55 - FTP connection with 192.168.0.99 ended. ID=6
← →
Leech (2004-02-19 12:48) [12]Последнее событие, кторое происходит у IdFTP - "OnWorkBegin"
← →
Leech (2004-02-19 13:02) [13]Всё, разобрался... Если ещё у кого возникает такая ошибка - Вот:
"This exception class is raised when a connection has been closed gracefully. Because it descends from EIdSilentException, it behaves like the VCL EAbort exception. We recommend that you set your IDE to ignore those exceptions by clicking Tools|Debugger Options..|Language Exceptions|Add and entering "EIdSilentException
"."
← →
nikkie © (2004-02-19 19:22) [14]>неверно скачиваются бинарные файлы аля BMP, JPG
>Текстовые файлы (TXT, HTM) скачиваются правильно.
налицо неверно указанный тип передачи данных. хорошо было бы сделать лог и посмотреть, посылается команда TYPE I. судя по IdFTP.pas от версий 8 и 9 она может не посылаться, если подключались с помощью IdFTP.Connect(False). в этом случае надо руками вызвать SendTransferType.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c