Ошибка при получении файла POST запросом

Есть сервис для приема файлов и записи их в БД.

PHP:
$filename= $_FILES['xml']['name'];
 if(isset($_FILES["xml"]))
             {
//читаем содержимое файла
             $xml = file_get_contents( $_FILES['xml']['tmp_name'] );
// Экранируем специальные символы в содержимом файла
             $fxml = mysql_escape_string( $xml );
      
// проверяем на наличие ошибок при загрузке файла
             $error =$_FILES["xml"]["error"]; 
             if ($error==0)
// if (($error_code==0)||(move_uploaded_file($_FILES['xml']['tmp_name'], $xml)))
                 {
                     echo "Файл был получен.\n";
                 }
С маленькими файлами, до 2 МБ всё работает. При передаче файлов больше 2 Мб возникает ошибка
Warning: POST Content-Length of 9188537 bytes exceeds the limit of 8388608 bytes in Unknown on line...

Как исправить баг?
 

Фанат

oncle terrible
Команда форума
Это делается в два действия.
1. Сначала копируем ошибку в адресную строку браузера и нажимаем ентер (конкретные цифры лучше догадаться убрать).
2. Смотрим ответы на свой вопрос.
 

Фанат

oncle terrible
Команда форума
Зачем было городить загрузку файлов, когда можно было их просто отдавать безо всяких проблем - загадка.
 
Для того, чтоб загружать файлы больших объемов нужно изменить настройки сервера, а именно:
1) usr\local\mysql-5.5\my.ini

max_allowed_packet 100M

2) usr\local\php\php.ini

upload_max_filesize 50M
post_max_size 200M

Тип поля в БД - longblob
 

Фанат

oncle terrible
Команда форума
я бы не стал загружать XML файлы в базу данных.
смысла в этом никакого.
 

Фанат

oncle terrible
Команда форума
Требования бывают неверно сформулированы и неправильно поняты.
слово "база данных", к примеру, многие люди понимает совершенно по-разному.
К примеру, один мой клиент ни под каким видом не соглашался на использование базы данных в проекте.
с большим трудом выяснилось, что под БД он имеет в виду локальный MS Access "и когда сотрудника нет на месте - база недоступна!"

задача, которая изначально решалась в три строчки (передающий скрипт не меняется, принимающий делает file_get_contents и сохраняет в файл ) разрослась в глобальный проект, затрагивающий конфигурацию сервера и требующий постоянных вопросов на форуме.
и все - из-за неверно понятых начальственных указаний =)
 
т.е. целесообранее сохранять файлы в файловой системе, а в базе хранить путь к ним. И со стороны быстроты поиска по файловой ситсеме, и с точки зрения безопасности? Я не спорю, в принципе.
 

Фанат

oncle terrible
Команда форума
Ну, безопасность здесь не при чём. Равно как и скорость доступа.

Целесообразность - да. Сообразность цели.
Никаких осмысленных действий (таких как сортировка, группировка, фильтрация, поиск, установление связей), оправдывающих хранение в БД, совершить над хмл-файлом нельзя.
Хранение файла в бд тупо добавляет два лишних действия - сохранение в базу и получение из базы. Плюс ненужное изменение настроек базы.

Пути хранить обычно тоже нет смысла - обычно путь можно вычислить. Скажем, давать файлу имя, совпадающее с id клиента.
 
Сверху