Как да изтегля само малка част от голям файл? [затворено]

Как да изтегля само малка част от голям файл в Delphi? (като Download Manager)

Да предположим например, че искам да получа първите 300 байта от 100MB текстов файл през HTTP.


person Sky    schedule 11.07.2013    source източник
comment
msdn.microsoft.com/en-us/library/windows/ desktop/aa385103.aspx   -  person Arioch 'The    schedule 11.07.2013
comment
Отговорът на въпроса, който зададохте, е Да, възможно е. Не е необходима друга информация, за да се отговори. Тъй като това вероятно не е полезно за вас, може би трябва да редактирате въпроса си, за да стане малко по-ясно какво питате . :-) Какво е сървър например? И какво точно поддържа (ftp, http, нещо друго)?   -  person Ken White    schedule 11.07.2013
comment
http://synapse.ararat.cz/doc/help/httpsend.THTTPSend.html#RangeStart   -  person Arioch 'The    schedule 11.07.2013
comment
indyproject.org/docsite/html/TIdRequestHeaderInfo_Range.html   -  person Arioch 'The    schedule 11.07.2013
comment

След като изградите своя пакет, изпълнете следното:

cd <bundle dir>/programs/server
sudo npm install

Това ще инсталира влакна в пакета и това го поправи за мен. Надяваме се, че това работи за вас!

  -  person Ken White    schedule 11.07.2013


Отговори (1)


получаване на първите 300 байта от 100MB файл.

С помощта на библиотеката WinInet можете да посочите в параметрите колко байта от началото на файла всъщност са ви необходими.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa385103.aspx


В случай, че по-късно искате някакво междинно парче, можете да проучите библиотеки на трети страни. С тези библиотеки трябва да зададете HTTP заявка Range заглавка - https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

Сървърът обаче може да игнорира тази заглавка. Библиотеката, която изберете, трябва да провери дали сървърът е оттеглил Content-Range в HTTP отговор и да направи нещо, ако не е така. Може би изтегляне от самото начало на файла или може би хвърля изключение. Трябва да тествате тези библиотеки и да разберете тяхното поведение в такъв случай.

person Arioch 'The    schedule 11.07.2013