Как да изтегля само малка част от голям файл в Delphi? (като Download Manager)
Да предположим например, че искам да получа първите 300 байта от 100MB текстов файл през HTTP.
Как да изтегля само малка част от голям файл в Delphi? (като Download Manager)
Да предположим например, че искам да получа първите 300 байта от 100MB текстов файл през HTTP.
получаване на първите 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
Няма онлайн помощ за http://www.overbyte.be/eng/products/ics.html, но може би в източници ще намерите поддръжка за него.
Има числови свойства в http://synapse.ararat.cz/doc/help/httpsend.THTTPSend.html#RangeStart
Има свойство на низ в http://www.indyproject.org/docsite/html/TIdRequestHeaderInfo_Range.html за TIdHTTP.Request
обект.
Сървърът обаче може да игнорира тази заглавка. Библиотеката, която изберете, трябва да провери дали сървърът е оттеглил Content-Range
в HTTP отговор и да направи нещо, ако не е така. Може би изтегляне от самото начало на файла или може би хвърля изключение. Трябва да тествате тези библиотеки и да разберете тяхното поведение в такъв случай.
След като изградите своя пакет, изпълнете следното:
Това ще инсталира влакна в пакета и това го поправи за мен. Надяваме се, че това работи за вас!
- person Ken White   schedule 11.07.2013