Codeigniter – Допустимый размер памяти при загрузке

Я заметил, что есть похожие вопросы, но я попробовал предлагаемые решения и не смог найти решение.

Вот моя среда разработки:

  • PHP 5.3.10-1ubuntu3.4 с Suhosin-Patch (cli)
  • Версия сервера: Apache / 2.2.22 (Ubuntu)
  • Codeigniter_2.1.2

То, что я пытаюсь сделать, является основным примером загрузки изображения. Вот контроллер:

<?php class Entry extends CI_Controller { function __construct() { parent::__construct(); ini_set('memory_limit', "256M"); } function index() { $this->load->view('upload_form'); } function upload() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|png|jpg'; $config['max_size'] = 2048; $config['max_width'] = 1024; $config['max_height'] = 768; $this->load->library('upload', $config); if (! $this->upload()->do_upload('file')) { $error = array('error' => $this->upload->display_errors()); $this->load->view('upload_form', $error); } } } ?> 

И мой файл просмотра выглядит так:

 <?php echo form_open_multipart('entry/upload'); echo form_upload('file'); echo form_submit('submit', 'Upload Fille'); ?> 

В контроллере вы можете увидеть, что я попытался установить ограничение памяти на 256 МБ, я также попробовал вариант -1. Когда я устанавливаю memory_limit на -1, компьютер бегал с ума, он застыл ((:

Вот ошибка, которую я получаю, когда пытаюсь загрузить sth.

 PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in /var/www/giydir/system/core/Common.php on line 358, referer: http://localhost/giydir/entry 

Мне кажется интересной строка, которую показывает ошибка.

 $_log =& load_class('Log'); 

В соответствии с вашими отзывами, вы нажимаете ограничение на память в 128M …. ваш встроенный скрипт 256M, похоже, не прилипает. Попробуйте отредактировать свой ini-файл напрямую, чтобы увеличить память?

Извините, это была моя ошибка. Теперь он решен.

Линия

 if (! $this->upload()->do_upload('file')) { 

должно быть

 if (! $this->upload->do_upload('file')) { 

Увеличьте объем памяти в файле php.ini . Это решит вашу проблему.

 memory_limit = 12M