Каков наилучший способ реализовать большой (1 ГБ или более) веб-сайт для загрузки файлов на PHP или Java? - PullRequest
3 голосов
/ 23 марта 2010

Каков наилучший способ реализовать большой (1 ГБ или более) веб-сайт для загрузки файлов на PHP или Java? Использование способа загрузки по умолчанию в PHP или Java приводит к нехватке ОЗУ и очень резкому замедлению работы сайта.

Ответы [ 3 ]

2 голосов
/ 23 марта 2010

Было бы неразумно открывать файл на стороне клиента, читать все его содержимое в память, закрывать его и затем начинать отправку содержимого именно потому, что содержимое может превышать доступную память.

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

1 голос
/ 23 марта 2010

Мы использовали http://www.javaatwork.com/ftp-java-upload-applet/details.html для загрузки очень больших файлов на выделенный хостинг. Работает даже с большим количеством файлов RAW (фото).

Единственным недостатком является то, что он не является многопоточным и блокирует ваш браузер, пока все не будет загружено.

Еще нужно найти другой Java-загрузчик, который выглядит так же хорошо (как это важно для нас), но есть несколько многопоточных, которые выглядят довольно плохо: -)

0 голосов
/ 13 ноября 2010

Я бы порекомендовал JumpLoader [google it], так как он предлагает много полезных функций. Я интегрировал его в свой проект CMS с открытым исходным кодом, работает просто отлично (конечно, несколько настроек здесь и там необходимо). Имеет интерфейс Javascript, доступ к которому можно получить с помощью необработанного Jscript или JQuery [я использовал последний, небольшой кодированный плагин для него]. Единственным недостатком будет JumpLoader на лбу апплета: P, который вы можете удалить за 100 баксов.

В целом, такие функции, как многократная загрузка, редактирование изображений и документов при предварительной загрузке, разбиение на разделы, проверка целостности передачи с помощью md5 по дактилоскопии и тому подобное, очень привлекательны.

...