Как скачать только маленькую часть большого файла?

Как загрузить только маленькую часть большого файла в Delphi? (например, менеджер загрузок)

Например, предположим, что я хочу получить первые 300 байт текстового файла размером 100 МБ по HTTP.


person Sky    schedule 11.07.2013    source источник
comment
msdn.microsoft.com/en-us/library/windows/ рабочий стол/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
Я откатываю ваше последнее редактирование, потому что это совершенно новый вопрос. После того, как вы получили ответ на заданный вопрос, неправильно редактировать, чтобы задать совершенно другой вопрос. Разместите новый вместо этого и спросите там. Это не сайт для развития вашего кода в вашем вопросе. Задайте вопрос, получите ответ. Примите один, если это поможет вам. Если у вас есть новый вопрос, опубликуйте новый вопрос.   -  person Ken White    schedule 11.07.2013


Ответы (1)


получение первых 300 байт файла размером 100 МБ.

Используя библиотеку 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