我正在尝试一次上传多张图片(3张)并为每张图片创建缩略图。但是我的代码上传了3张图片,只创建了1个缩略图(第1张图片的缩略图)。如何创建多个图像的缩略图? 控制器:uploadImage功能并创建缩略图功能
function uploadImage()
{
if($this->validate()==TRUE) {
$config['upload_path'] = "images/uploads/";
$config['allowed_types'] = "gif|jpg|jpeg|png";
$config['max_size'] = "5000";
$config['max_width'] = "1907";
$config['max_height'] = "1280";
$this->load->library('upload', $config);
foreach ($_FILES as $key => $value) {
if (!empty($value['tmp_name'])) {
if ( ! $this->upload->do_upload($key)) {
$error = array('error' => $this->upload->display_errors());
//failed display the errors
}
else {
//success
$finfo=$this->upload->data();
$this->_createThumbnail($finfo['file_name']);
$data['uploadInfo'] = $finfo;
$data['thumbnail_name'] = $finfo['raw_name']. '_thumb' .$finfo['file_ext'];
}
}
}
}
}
//Create Thumbnail function
function _createThumbnail($filename)
{
$config['image_library'] = "gd2";
$config['source_image'] = "images/uploads/" .$filename;
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = "80";
$config['height'] = "80";
$this->load->library('image_lib',$config);
if(!$this->image_lib->resize()) {
echo $this->image_lib->display_errors();
}
}
答案 0 :(得分:7)
根据此link.
对createthumbnail函数进行一些更改而不是
$this->load->library('image_lib',$config);
使用
$this->load->library('image_lib');
// Set your config up
$this->image_lib->initialize($config);
// Do your manipulation
$this->image_lib->clear();
新的createThumbnail函数:
//Create Thumbnail function
function _createThumbnail($filename)
{
$this->load->library('image_lib');
// Set your config up
$config['image_library'] = "gd2";
$config['source_image'] = "images/uploads/" .$filename;
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = "80";
$config['height'] = "80";
$this->image_lib->initialize($config);
// Do your manipulation
if(!$this->image_lib->resize())
{
echo $this->image_lib->display_errors();
}
$this->image_lib->clear();
}