У меня есть веб-приложение, которое принимает загрузки файла до 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 на стороне сервера? Я ценил бы Ваши ответы.
Вы определенно можете написать веб-приложение, которое будет принимать блок данных (даже через POST), а затем добавлять этот блок данных в файл. Мне кажется, что вам нужно какое-то клиентское приложение, которое будет брать файл и разбивать его на части, а затем отправлять их в вашу веб-службу по частям. Однако кажется намного проще создать каталог sftp и позволить клиентам просто загружать файлы sftp, используя какое-то уже существующее клиентское приложение.
Как насчет использования Java-апплета для загрузки и PHP для обработки ..
Вы можете найти здесь пример для Jupload: http://sourceforge.net/apps/mediawiki/ jupload / index.php? title = PHP_Example
"но я не могу найти никакого эквивалента request.getInputStream в PHP. "
fopen('php://input');
perhaps?
Я создал клиент JavaFX для отправки больших файлов фрагментами максимального размера сообщения (я использую 2 МБ) и сценарий приемника PHP для сборки фрагментов в исходный файл. Я выпускаю код под лицензией apache здесь: http://code.google.com/p/gigaupload/ Не стесняйтесь использовать / изменять / распространять.