|
|
|
| Вот создаю велосипед, и с толкнулся с таким вопросом. В исходниках нашёл функцию для докачки файлов, отдаваемых через скрипт. Но столкнулся с такой проблемой, что файл менялся до того, как скачается. Оказалось, что одна строчка портила его работу:
fseek($filenames, intval($range),0);
|
Убрал её, всё качается без проблем. И даже начал качать во много потоков! Есть догадки, что эта строчка каким то способом ограничивает скачку, чтобы небыло много потоков, т.е. делает меньшую нагрузку на сервер. Может, кто-нибудь сказать, что эта строчка точно делает? Заранее спасибо! | |
|
|
|
|
|
|
|
для: slonik
(09.10.2006 в 18:17)
| | Эта функция в указанном применении не сделает ничего.
Хотя бы потому что не работает с именами файлов.
Она устанавливает позицию чтения/записи открытого файла, дескриптор (а не имя) которого задан первым параметорм. Устанавливает в положение, заданное вторым параметром.
Убирая её, Вы вероятно , лишь заставляете процесс загрузки идти от начала файла.
Если $filenames - это всё же не имя, а дескриптор открытого файла, то неприятности её применения могли быть вызваны тем, что в заголовке отклика Вы не формируете корректно поле Content-Range, и клиент считает, что отдается весь файл от нуля. | |
|
|
|
|
|
|
|
для: Trianon
(09.10.2006 в 18:45)
| | $filenames - это новое название для файла, которое создаётся в Content-Disposition | |
|
|
|
|
|
|
|
для: slonik
(09.10.2006 в 19:35)
| | тогда такой вызов завершится неудачей. А в выходной поток попадет не участок файла, а сообщение об ошибке вызова функции fseek. | |
|
|
|
|
|
|
|
для: Trianon
(09.10.2006 в 19:38)
| | Эм? Никаких ошибок нет, всё рабоает как часы. | |
|
|
|
|
|
|
|
для: slonik
(09.10.2006 в 20:52)
| | Вы бы код показали чтоли.... | |
|
|
|