Вниз
Скачать: CL | DM;

TKOLHTTP и TKOLFTP - скачка определенной части файла   Найти похожие ветки 

← →
Vitalis ©   (2002-07-01 23:00) [0]

НАрод, нужна функция для FTP и HTTP, которая бы забирала определенную часть определенного удаленного файла и записывала его в поток. Я взял в роли прототипа функцию Get и вот что получилось:
procedure TKOLFtpClient.GetToStream(RemFile : String;{Удаленный файл} Where : PStream;{Поток, куда скачивать}Start,{Смещение с начала файла} Length{Длина скачки} : Integer);
begin
if RemFile = "" then exit;
if ftpStatus = ftpReady then begin
Size(RemFile);
ftpStatus := ftpGet;
OutStream := Where;
if fMainSock.Connected then begin
OpenData;
fDataSock.OnRead := OnDSBRead;
if SendStr("TYPE I") then begin
TotalRece := Start;
OutStream.Position := Start;
if SendStr("REST " + int2str(Start)) then begin
end;
SendStr("RETR " + RemFile);
end;
end else DoEvent(fOnFTPErr)
end else DoEvent(fOnFTPErr);
end;


Я не понял, как ограничивать скачку параметром Length.

Необходима аналогичная функция для TKOLHTTP, но там я вообще ничего не понял. Помогите люди добрые на мыло vox@smtp.ru


← →
HekTo   (2002-07-01 23:26) [1]

Для ФТП, кажется, тебе придется это самому организовать - прервать прием, когда скачается требуемое количество байт информации. А для HTTP в заголовках есть такой:
Range: bytes=FromXXX-ToXXX, где FromXXX и ToXXX соответственно смещение начала и смещение конца запрашиваемого фрагмента.

А еще можно залезть на www.rfc.net и посмотреть спецификации протоколов FTP (RFC959) и HTTP/1.1 (RFC2068)...


← →
HekTo   (2002-07-01 23:26) [2]

Для ФТП, кажется, тебе придется это самому организовать - прервать прием, когда скачается требуемое количество байт информации. А для HTTP в заголовках есть такой:
content-Range: bytes=FromXXX-ToXXX, где FromXXX и ToXXX соответственно смещение начала и смещение конца запрашиваемого фрагмента.

А еще можно залезть на www.rfc.net и посмотреть спецификации протоколов FTP (RFC959) и HTTP/1.1 (RFC2068)...


← →
Vitalis ©   (2002-07-02 00:15) [3]

Спасибо. А для FTP где прерывать? в какой процедуре? в OnDSBRead?
Еще я не очень понял, зачем нужна TotalRece и функция Size()


← →
Vitalis ©   (2002-07-02 01:13) [4]

И про TKOLHTTP - там заголовок Range: посылать в OnConn? после fSoc.SendString("Host: " + fAdr + #13#10); ?


← →
BorisMor   (2002-07-02 16:29) [5]

Посмотри на странице Кладова
http://bonanzas.rinet.ru/rindex.htm
В разделе "Демо". Там есть примеры.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.989 c
3-54483
Мефодий
2003-03-30 17:56
2003.04.17
Проблема с выбором редактируемых столбцов в DBGridEh


1-54551
Опус
2003-04-06 10:23
2003.04.17
Отчеты. Подскажите как поместить CheckBox или ...


3-54455
Ptr
2003-03-26 13:10
2003.04.17
ПАРАДОКС


8-54762
albom
2002-12-21 23:55
2003.04.17
Размытие изображения


3-54465
Dr_MoZ
2003-03-28 13:14
2003.04.17
Русские буквы в Database Desktop 7.0




   Наверх