Большие загрузки файлов - PullRequest
       13

Большие загрузки файлов

5 голосов
/ 27 августа 2009

Я работаю над приложением, которое позволяет загружать и хранить большие файлы на веб-сервере. В настоящее время я использую PHP для обработки POST-файлов через http. У меня есть php.ini с:

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 128M
max_input_time = 6000
max_execution_time = 6000

Кажется, что для LimitRequestBody не установлено никаких директив apache. Я использую APC для отслеживания прогресса загрузки файла. По какой-то причине загрузка файла всегда останавливается точно на 50M.

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

Мне интересно, кто-нибудь может дать мне несколько советов о том, что останавливает мою загрузку ровно на 50M? Это должна быть какая-то настройка конфигурации.

Кроме того, есть ли какой-то другой способ, который я должен рассмотреть, используя javascript / PHP и http для загрузки файлов. Я посмотрел в Java-апплеты и с помощью Flash. Возможно, я собираюсь использовать swfuploader, но если это конфигурация сервера, которая приводит к сбою загрузки через http, я не вижу, как обойти это будет апплет Java или флэш-загрузчик.

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

Я использую очень упрощенный PHP для получения файла

$uploaddir = '/'.$_POST['upload_directory'].'/';
$uploadfile = $uploaddir . basename($_FILES['file']['name']);

if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {  some success code; }

Очевидно, что в этом есть что-то большее, но это суть того, как я справляюсь с загрузкой.

Ответы [ 2 ]

4 голосов
/ 28 августа 2009

После нескольких часов удара головой я решил проблему. Я использую Extjs для компонентов переднего плана. Используемый мной виджет загрузки содержит жестко заданную настройку, которая устанавливает свойство MAX_ UPLOAD _FILESIZE запроса POST равным 50M, перезаписывая значение, которое я установил в другом месте. Теперь он работает как положено. Спасибо за комментарии.

2 голосов
/ 27 августа 2009

Установите директиву LimitRequestBody в вашем vhost.

http://www.cyberciti.biz/faq/apache-limiting-upload-size/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...