Не удалось создать изображение большого пальца в цикле $_FILES

Я перебираю $_FILES, чтобы создать изображения большого пальца загруженных картинок. Он отлично работает для первого изображения, но не работает для следующих изображений. Я скучаю по добавлению специальной строки или в моем коде есть поток?

Примечание. Исходные файлы успешно загружаются и сохраняются в папке перед созданием большого пальца из них.

Когда я получаю сообщение об ошибке, я получаю следующее: "Ваш сервер не поддерживает функцию GD, необходимую для обработки этого типа изображения". Когда я загружаю это самостоятельно, это работает!!!!

Спасибо

public function upload_image()
{
    $config['upload_path']      = './web/uploads/images/';
    $config['allowed_types']    = 'gif|jpg|png';
    $config['max_size']         = 5120;
    $config['max_width']        = '0';
    $config['max_height']       = '0';
    $config['encrypt_name']     = true;

    $this->load->library('upload');
    $this->upload->initialize($config);     

   foreach ($_FILES as $file => $value)
   {
      $this->upload->do_upload($file);

      $result = $this->upload->data();

      if ($this->manipulate_image($result['file_name']) === false)
      {
          echo 'Failed to create thumb for the image ' . $value['name'] . '<br />';
      }
   }
}

    public function manipulate_image($file_name)
    {
        $config['image_library']    = 'gd2';
        $config['source_image']     = './web/uploads/images/' . $file_name;
        $config['create_thumb']     = true;
        $config['maintain_ratio']   = false;
        $config['width']            = 100;
        $config['height']           = 100;
        //$config['master_dim']     = 'width';
        $config['thumb_marker']     = '_thumb';

        $this->load->library('image_lib', $config);

        if (! $this->image_lib->resize())
        {
            $this->image_lib->clear();
            return false;
        }

        $this->image_lib->clear();
        return true;
    }

2 ответа

Решение

Я вижу две вещи, во-первых, я бы переместить load в библиотеке за пределами foreach цикл затем использовать initialize внутри цикла для установки конфигурации:

$this->image_lib->initialize($config);

Также, как описано здесь, вы можете использовать

echo $this->image_lib->display_errors();

Чтобы лучше понять вашу проблему

Видимо, загрузка загрузки image_lib несколько раз в цикле вызывает эту проблему.

Решено без включения в цикл.

Другие вопросы по тегам