upload больших файлов

Статус
В этой теме нельзя размещать новые ответы.

skeeve

Новичок
upload больших файлов

Кто-нить знает как большие файлы залить через ПХП?
реально большие без ограничения на размер.
простое увеличение таймаута не прокатит, т.к. загрузка может занять хоть 3, хоть 5 часов.
Можно ли сделать какое-то обновление страницы во время загрузки, чтобы закачка продолжалась? желательно чтоб при обновлении еще % загрузки выводился...
 

Wicked

Новичок
ты хотел спросить как _принимать_ такие файлы пхп-скриптом?
 

zxc

Новичок
http://phpclub.ru/detail/article/upload

upload_max_filesize - максимальный размер файла, который может быть загружен. Если Вам необходимо работать с большими файлами, измените эту настройку. По умолчанию 2М. Не забудьте изменить post_max_size.
 

skeeve

Новичок
не, я не о том
если посетитель заливает 30 метров с модема, то просто таймаут будет. в этом проблема
нужно как-то рефрешить страницу во время загрузки, продолжая аплоад файла
 

whirlwind

TDD infected, paranoid
С какой стати будет таймаут? Таймаут будет когда сервер не отвечает в течение определенного времени. А когда данные туда-сюда идут, то никакого таймаута не будет. Или тогда при скачивании файла браузер тоже отваливает по таймауту?
 

zxc

Новичок
В IE замечен глюк, что он обрывает закачку страницы, если в течении длительного времени не получает никакого контента.
Посылай вначале 1кб какой-нибудь пустого текста:

<? echo '<!--'.str_repeat('.',1024).'-->'; flush(); ?>
 

Wicked

Новичок
zxc
jfyi: когда происходит закачка файла, сам пхп-скрипт еще не начинает свою работу.
 

Gorynych

Посетитель PHP-Клуба
whirlwind

а сервер именно и не отвечает в течении долгого периода времени, потому что данные еще посылаются на сервер, т. е. инициировано обращение, но веб-сервер слишком долго получает все тело запроса. http://httpd.apache.org/docs/1.3/mod/core.html#timeout
 

skeeve

Новичок
хорошо, а есть ли возможность выводить статус бар, насколько закачан файл? или это нереально?
 

whirlwind

TDD infected, paranoid
Ну и? вдумчиво читаем

1.The total amount of time it takes to receive a GET request.
2.The amount of time between receipt of TCP packets on a POST or PUT request.
3.The amount of time between ACKs on transmissions of TCP packets in responses.
Речь о пакетах, а не о файлах. На каждый отправленный пакет, браузер получает подтверждение. Это протокол TCP/IP который к файлам или их объемам не имеет никакого отношения. Так же как и соединение браузера с сервером не имеет никакого отношения к файлам. Таймаут - это когда браузер в течении определенного времени не получил подтверждения на прием пакета сервером, или при получении данных - наоборот. При чем тут общий объем данных я никак не пойму. Или вы хотите сказать что 600 меговый файл отправляется одним пакетом? :)

-~{}~ 10.08.06 15:12:

другое дело что за время

загрузка может занять хоть 3, хоть 5 часов.
Шансов получить "непринятый" пакет на медленном канале больше, чем за 5 минут. И здесь уже вопрос в другом - а правильный ли выбран протокол для передачи данных. Ведь в случае обрыва, докачать файл отправленный постом по HTTP неудастся.
 

Gorynych

Посетитель PHP-Клуба
whirlwind да не, мы только хотим сказать, что при длительной пересылке больших объемов данных (и по модему) есть некоторый эффект "затухания" обмена пакетами, который постепенно приводит к обрыву. Ниоткуда не следует, кроме исключительно опыта наступления на грабли.

собственно, эта мысль частично совпадает с вашим дополнением -~{}~ 10.08.06 15:12:
 

yUAC

Новичок
ИМХО для этих целей лучше всё-таки использовать FTP или какие-нибудь подобные методы.
 

Ready

Новичок
Чтобы не создавать новую тему, напишу здесь.

Нужно реализовать загрузку больших файлов (100-200МБ) через HTTP (PHP), как это сделать? Есть ли где-нибудь примеры скриптов?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху