无法在$_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;
}

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

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

此外,如本文所述,您可以使用

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

为了获得更多关于您的问题的见解

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

已解决,但不包含在循环中。

相关内容

  • 没有找到相关文章

最新更新