|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как дописать данные к существующему файлу на ФТП
Приветсвую, ребята помогите доделать код ниже для того, чтобы мне не приходилось создавать новые файлы, а дописывать данные к существующему:
Код:
uses WinInet; function Upload(Serv, Login, Pas, InFN, {OutFN, } Folder: string): Boolean; var InetHandle, FtpHandle: HInternet; begin RESULT := FALSE; InetHandle := InternetOpen(PChar('FTP'), //nil или Microsoft Internet Explorer 0, //INTERNET_OPEN_TYPE_PRECONFIG !!!!! INTERNET_OPEN_TYPE_DIRECT nil, nil, 0); FtpHandle := InternetConnect(InetHandle, PChar(Serv), 21, //INTERNET_DEFAULT_FTP_PORT PChar(Login), PChar(Pas), INTERNET_SERVICE_FTP, 0, //INTERNET_FLAG_PASSIVE, 255); //0 Sleep(100); if FtpHandle <> nil then begin // if not FtpSetCurrentDirectory(FtpHandle, PChar(Folder)) then begin if FtpCreateDirectory(FtpHandle, PChar(Folder)) then FtpSetCurrentDirectory(FtpHandle, PChar(Folder)); end; // try FtpPutFile(FtpHandle, PChar(InFN), PChar({OutFN} IntToStr(RandomInteger(6)) + '_' + RandomString(6)), FTP_TRANSFER_TYPE_BINARY, //FTP_TRANSFER_TYPE_UNKNOWN 255); //0 InternetCloseHandle(FtpHandle); RESULT := TRUE; except end; end; InternetCloseHandle(InetHandle); end; |
#2
|
||||
|
||||
на сколько я могу судить данная тема уже поднималась: http://www.delphisources.ru/forum/showthread.php?t=6181
Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы... ICQ: 593977748 Nick: Marvel |
#3
|
||||
|
||||
Оно и есть только не на INDY надо, а на WinInet.
Неужели надо скачивать файл, дописывать и выгружать обратно, иначе никак, а если файл много весит ? |
#4
|
||||
|
||||
нашел в каких-то исходниках такое:
Код:
int num = FtpGetRetryCount(hConnect); int num = FtpGetRetryCount(&getConnection()); if ( g_manager.opt.RetryCount > 0 && num >= g_manager.opt.RetryCount ) return FALSE; FtpSetRetryCount( hConnect,num+1 ); if ( !hConnect->ConnectMessageTimeout(MCannotUpload, remoteFile, MRetry)) FtpSetRetryCount(&getConnection(), num+1 ); if (!getConnection().ConnectMessageTimeout(MCannotUpload, remoteFile, MRetry)) return FALSE; Reput = TRUE; if ( FtpCmdLineAlive(hConnect) && FtpKeepAlive(hConnect) ) if(getConnection().keepAlive()) Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы... ICQ: 593977748 Nick: Marvel Последний раз редактировалось Marvel, 01.07.2010 в 17:20. |
#6
|
||||
|
||||
Такой возможности нет, но выяснилось что тут надо напрямую плясать с сервером, отсылать ему команды, но я не в курсах как это реализовать, опыта нет. Выдрать инфу из сурсов ИНДИ так же не удалось, так что тема остается открытой.
|