|
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 142
|
|
Получение части файла http04.08.2013, 21:18. Показов 1956. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|