无法在$ _FILES循环中创建拇指图像

时间:2012-12-11 16:13:47

标签: php codeigniter imagelibrary

我遍历$ _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 个答案:

答案 0 :(得分:1)

我看到两件事,首先,我会在load循环之外的库上移动foreach,然后在循环中使用initialize来设置配置:

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

此外,如记录here,您可以使用

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

要更深入地了解您的问题

答案 1 :(得分:0)

显然在循环中多次加载image_lib会导致此问题。

解决而不包括循环。