Загрузка больших файлов (1Gb+) на сервер через HTTP с возможностью докачки.

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

casher

Полезный
Регистрация
24 Фев 2008
Сообщения
168
Реакции
17
Насколько я понял, на чистом PHP это в принципе не возможно. Или я ошибаюсь?
Вот нагуглил jfileupload (Для просмотра ссылки Войди или Зарегистрируйся) на Java, но он сцуко - платный. Может кто знает фришные аналоги или альтернативные решения на AJAX'е или флеше?
Подскажите, пожалста, готовое решение для интеграции в двиг.
 
видел такое у вот этого загрузчика: Lightweight Uploader


Но для Ваших целей у него есть ограничения:
Resumable uploads even after closing browser tab/window (available only in html5 and silverlight frontends)
т.е. работает это только в html5 или Silverlight.

вот здесь еще почитайте:
 
*** скрытое содержание ***
Но для Ваших целей у него есть ограничения:
т.е. работает это только в html5 или Silverlight.

Это как раз не критично, т.к. пользователей ограниченное количество и можно им поставить браузер с поддержкой тогоже html5, а вот то что он работает только на nginx - проблема. Переживаю что при переходе на него начнут вылазить косяки и работа встанет, это неприемлемо.

Топик на phpclub.ru уже видел, там ТС как раз на JFileUpload сделал.
 
не уверен, но по-моему, этот загрузчик можно использовать и без nginx с помощью каких-то шаманских действ.
где видел - уже не помню, к сожалению. дело в том, что исходный код открыт.

с другой стороны - nginx как раз и не проблема.
поскольку nginx можно настроить в качестве фронтэнда.
а бэкэнд - все тот же Apache. а следовательно, вам не нужно на nginx переходить.

например, так сделано у Агавы.
т.е. nginx отдает статику (причем очень быстро),
если же есть обращения к php например, то nginx шлет запрос к Apache.

вопрос: сервер ваш? или у хостера?

еще: вообще протокол http не предназначен для загрузки файлов больших объемов на сервер, причем с докачкой.
при использовании flash-загрузчиков они грузят файл в память, используемую браузером, а потом делают то, что необходимо.
отсюда ограничения на размер файла. и я поэтому не видел flash-загрузчиков, справляющихся с большими файлами.

вообще, лучшие flash-загрузчики - это SWFUpload и plupload. но насколько я знаю их api, они не поддерживают докачку.

выход из положения придумали с html5 и File API.

поскольку юзеров кому это нужно немного, и вы хотите реализовать все в браузере,
то на вашем месте я бы решил проблему следующим образом:
сделал бы ActiveX-компонент (но вы понимаете, какой браузер при этом придется использовать),
и в нем реализовал бы весь функционал. уж к WinAPI у вас будет полный доступ, а значит сможете и с файлами делать все,
что захотите (например читать его с какого-нибудь offset).

но в любом случае, вам придется много допиливать.
подобные готовые решения используются на порталах вроде mail.ru, youtube и широкой публике не доступны.

SWFUpload именно и используется на youtube, но я уверен, что не в версии из коробки.
Поинтересуйтесь на его форуме о докачке: .
Форум не сильно живой, саппорт хромает.

У Plupload поживей отклик на вопросы юзеров.

и немного уточните вопрос - какая ОС на клиентских машинах, что на сервере. есть ли службы какие-нибудь.
просто при таких объемах грузить через браузер - не самое лучшее решение.
плюс к этому вы работу с файлом должны организовать как на стороне клиента, так и на стороне сервера.
 
для таких объемов самое то - nginx, а с файлами копай сюда - Для просмотра ссылки Войди или Зарегистрируйся. на хабре видел посты и о возможности докачки.
 
немного уточните вопрос - какая ОС на клиентских машинах, что на сервере. есть ли службы какие-нибудь.
Всё добро крутится на впске, чистый апач. У юзеров у всех винды, возможно пару макосей.
Вобщем пока остановился на JFileUpload, как самом простом/быстом способе реализации задачи. Если апач не будет справляться, поставлю nginx.
ЗЫ спасибо за помощь :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху