我遍历$ _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;
}
答案 0 :(得分:1)
我看到两件事,首先,我会在load
循环之外的库上移动foreach
,然后在循环中使用initialize
来设置配置:
$this->image_lib->initialize($config);
此外,如记录here,您可以使用
echo $this->image_lib->display_errors();
要更深入地了解您的问题
答案 1 :(得分:0)
显然在循环中多次加载image_lib会导致此问题。
解决而不包括循环。