|
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
|
|
Получение части файла http04.08.2013, 21:18. Показов 1987. Ответов 13
Метки нет (Все метки)
Возможно ли на php получить часть файла?
Есть функция string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) но там смещение в пределе int только, а необходимо очень большое смешение в районе 2^100 можно задавать Range в запросе, тут нашёл доку: http://www.freesoft.org/CIE/RFC/2068/178.htm но почему-то скачивается весь файл, а не часть вообще средствами php это осуществимо?
0
|
|
| 04.08.2013, 21:18 | |
|
Ответы с готовыми решениями:
13
Получение сообщения от сервера для клиентской части AJAX Деление файла на части и получение их хешей |
|
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
|
||||||
| 04.08.2013, 21:33 | ||||||
|
Ну можно ещё вырезать:
0
|
||||||
|
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
|
||
| 04.08.2013, 21:35 [ТС] | ||
|
т.е. изначально надо запросить часть
0
|
||
|
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
|
|
| 04.08.2013, 21:38 | |
|
В цикле прочесть, части в массив вставить - не пытались?
0
|
|
|
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
|
||||
| 04.08.2013, 21:48 [ТС] | ||||
|
Добавлено через 5 минут хотя вроде так же
0
|
||||
| 04.08.2013, 21:55 | |||||||||||
|
В код только подставьте нужные вам хосты:
Если вернет 206 код и укажет что-то вроде (в моем случае)
1
|
|||||||||||
|
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
|
|
| 04.08.2013, 21:57 | |
|
Как понять "ооочень большой позиции" ?)
0
|
|
| 04.08.2013, 21:59 | |
|
Не по теме: пс. надеюсь, вы уже догадались, что вам нужно сделать, чтобы считать файл так, как вы хотите:) ну, разуимеется, если сам сервер не откажет вам в Range. В curl, если что, этот же заголовок можно установить через CURLOPT_RANGE: http://php.net/manual/en/function.curl-setopt.php Добавлено через 53 секунды
0
|
|
|
296 / 284 / 84
Регистрация: 10.05.2013
Сообщений: 920
|
|
| 04.08.2013, 22:01 | |
|
NEbO, тут вы совершенно правы. Но, я хочу знать о чем идёт речь, по этому и спрашиваю.
0
|
|
| 04.08.2013, 22:15 | ||
|
если Range не поддерживается, то подобным образом считать не получится. Действительно тогда единственный вариант -- это читать откуда-то сначала, при этом буфер можно очищать до определенной позиции... все бы ничего, да ждать придется, конечно, долго. И если соединение сбросится, то все начинать заново (хотя, надеюсь вы не диалапе
). хотя 2^100 это мда... слишком большой канал нужен. А вообще, знаете, что я вам скажу: я не представляю, что это должен быть за сервер, который такие файлы может хранить. не уверен, конечно, но на всех серверах гугля наврядли столько найдетсяДобавлено через 2 минуты Дело в том, что если сервер поддерживает такой заголовок, можно читать файл не с самого начала, а задать смещение. А размер файла можно вычислить, с помощью например, посылки простого запроса GET и сразу закрыть соединение, после получения заголовков Добавлено через 3 минуты при этом размер будет в ответе сервера, в заголовке Content-Length Добавлено через 2 минуты или не будет, если он пошлет заголовок Transfer-Encoding: chuncked. Это допустимо, для разгрузки сервера Добавлено через 3 минуты Тогда размер файла просто так узнать нельзя, это уже своего рода динамически формируемый поток. Но Range тогда уже уж слишком маловероятно, если будет поддерживаться. Поучится, что у сервера должен быть буфер, который должен будет заполниться, а потом отдаваться клиенту. Но тогда отпадает смысл в chunked transfer-encoding. и наврядли это разрешается по стандарту. хотя тут я на 100% не уверен. предпочитаю делать сервера, а не клиенты, с последними мороки больше, в общем случае
0
|
||
|
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
|
|||
| 04.08.2013, 23:15 [ТС] | |||
|
NEbO, вот что возвращает
HTTP/1.1 416 Requested Range Not Satisfiable Date: Sun, 04 Aug 2013 19:07:52 GMT Server: Apache X-Error-Reason: Invalid format of byte-range request Connection: close Vary: Accept-Encoding Transfer-Encoding: chunked Content-Type: text/html 4d2 Not Found Invalid format of byte-range request 0 Добавлено через 5 минут это задание, может запросы обрабатывает просто скрипт но сам файл не раз банился майкрософтом за не реально большую длину, о чём там в ответе можете прочитать. Они устали с ними воевать по этому поводу ))
0
|
|||
| 04.08.2013, 23:21 | ||
|
а, вот как. ну если не реальный, то да. Попробуйте по rfc тогда пробежаться, как точно можно задавать range по-другому. Помните, что это -- строка, т.е. длину никто не ограничит. врочем, она может быть ограничена стандартом... Вероятно, там можно указывать не только bytes. тем более, если это задание такое.
Единственное что меня смущает, это Transfer-Encoding: chunked... пс. сам я щас тут немного занят, посмотрю, но позже Добавлено через 1 минуту Если нужна арифметика, посмотрите в сторону расширения gmp
0
|
||
|
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
|
|
| 04.08.2013, 23:25 [ТС] | |
|
NEbO да, работает спс)
самый первый приведённый скрипт ваш
0
|
|
| 04.08.2013, 23:25 | |
|
Помогаю со студенческими работами здесь
14
Получение данных по HTTP Получение данных времени с http://time100.ru Отправка http запроса и получение ответа Получение кода состояния HTTP через urllib Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|