|
|
|
(PHP) Сохранение удалённого файла на локальном сервере
|
|||
|---|---|---|---|
|
#18+
Есть код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Как быть, когда файл занимает 50 и более Mb. Всё виснет. Подскажите, может быть есть другой способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 16:53 |
|
||
|
(PHP) Сохранение удалённого файла на локальном сервере
|
|||
|---|---|---|---|
|
#18+
Николай_При сохранении файлов небольшого размера, всё работает. Как быть, когда файл занимает 50 и более Mb.Читать блоками и сразу их записывать в файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 17:07 |
|
||
|
(PHP) Сохранение удалённого файла на локальном сервере
|
|||
|---|---|---|---|
|
#18+
А блоками, это как? Записывать в файл лучше сразу после Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 17:24 |
|
||
|
(PHP) Сохранение удалённого файла на локальном сервере
|
|||
|---|---|---|---|
|
#18+
Во-первых, регулярник там этот нафиг не сдался. Всё, что вам нужно - это определить конец заголовка, который отделяется от контента пустой строкой. Фактически вам нужно сделать два цикла (либо же начинать запись в файл по флагу) - один читает всё в никуда до тех пор, пока не встретит пустую строку (trim($tmp)==''), а второй - читает данные из сокета и тут же их записывает. В этом случае вам не нужно будет иметь более 50 мегабайт оперативки (а её скорее всего в таком количестве скрипту не выдаётся), а достаточно будет гораздо меньше. Есть правда ещё вариант что зависон из-за плохого коннекта - но это уже не лечится (разве что будете через Range кусками доставать). И вообще что-то мне подсказывает, что браузер (и Апаче) в ваших телодвижениях - лишний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 17:31 |
|
||
|
(PHP) Сохранение удалённого файла на локальном сервере
|
|||
|---|---|---|---|
|
#18+
*один читает всё в никуда до тех пор, пока не встретит пустую строку (trim($tmp)==''), а второй - читает данные из сокета и тут же их записывает вот вроде так работает.. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:55 |
|
||
|
(PHP) Сохранение удалённого файла на локальном сервере
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, это работает в твоем частном случае... Ты считываешь ОДНУ строку и считаешь что это был заголовок. А остальное записываешь в файл. Хотя если я не ошибаюсь заголовок должен состоять минимум из ЧЕТЫРЕХ строк (точно не понмю а проверять лень) почему это работает не знаю, но могу точно сказать что это не выход. Если я неправ исправте пожалуйста.(у меня есть отмазка в виде пяти бутылок пива) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 23:49 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=473&tid=1478262]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
70ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 422ms |

| 0 / 0 |
