Загрузите разделение на блоки использования файлов на 1 ГБ в PHP

У меня есть веб-приложение, которое принимает загрузки файла до 4 МБ. Серверный сценарий является PHP, и веб-сервер является NGINX. Многие пользователи запросили увеличить этот предел решительно для разрешения загрузки видео и т.д.

Однако, кажется, нет никакого легкого решения для этой проблемы с PHP. Во-первых, на стороне клиента я ищу что-то, что позволило бы мне разделять файлы на блоки во время передачи. SWFUpload, кажется, не делает это. Я предполагаю, что могу передать загрузки потоком с помощью Java FX (http://blogs.oracle.com/rakeshmenonp/entry/javafx_upload_file), но я не могу найти эквивалент request.getInputStream в PHP.

Увеличение браузера client_post пределы или загрузка php.ini или max_execution времена не являются действительно решением для действительно больших файлов (~ 1 ГБ), потому что, возможно, браузер будет испытывать таймаут и думать обо всех тех блобах, сохраненных в памяти.

Там какой-либо путь состоит в том, чтобы решить эту проблему с помощью PHP на стороне сервера? Я ценил бы Ваши ответы.

37
задан Bill the Lizard 27 July 2012 в 22:49
поделиться

4 ответа

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

-2
ответ дан 27 November 2019 в 05:03
поделиться

Как насчет использования Java-апплета для загрузки и PHP для обработки ..

Вы можете найти здесь пример для Jupload: http://sourceforge.net/apps/mediawiki/ jupload / index.php? title = PHP_Example

0
ответ дан 27 November 2019 в 05:03
поделиться

"но я не могу найти никакого эквивалента request.getInputStream в PHP. "

fopen('php://input'); perhaps?

3
ответ дан 27 November 2019 в 05:03
поделиться

Я создал клиент JavaFX для отправки больших файлов фрагментами максимального размера сообщения (я использую 2 МБ) и сценарий приемника PHP для сборки фрагментов в исходный файл. Я выпускаю код под лицензией apache здесь: http://code.google.com/p/gigaupload/ Не стесняйтесь использовать / изменять / распространять.

3
ответ дан 27 November 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: