Codeigniter多文件上传和缩略图创建:仅上传一个缩略图

时间:2012-05-08 23:53:25

标签: file-upload multifile-uploader

我可以上传我的图片,我可以创建缩略图,但只有第一个缩略图正在上传。我检查了调整大小功能的错误代码,他们都说'真'(成功)。但是,如果我上传4个文件,则只会将第一个文件上传到缩略图文件夹。这是我的代码:

function _upload_them_images($_FILES, $last_insert_id)
{
    $error = '';
    // for($i=0; $i<count($_FILES); $i++)
    for($i=0; $i<count($_FILES['imagefile']['name']); $i++)
    {

        $_FILES['userfile']['name']         = $_FILES['imagefile']['name'][$i];
        $_FILES['userfile']['type']         = $_FILES['imagefile']['type'][$i];
        $_FILES['userfile']['tmp_name']     = $_FILES['imagefile']['tmp_name'][$i];
        $_FILES['userfile']['error']    = $_FILES['imagefile']['error'][$i];
        $_FILES['userfile']['size']     = $_FILES['imagefile']['size'][$i];

        $config['file_name']     = $last_insert_id.'_'.time().rand(1000,9999).$i;
        $config['upload_path']   = './images/vehicles/';
        $config['allowed_types'] = 'jpg|jpeg|gif|png';
        $config['max_size']      = '1000';
        $config['overwrite']     = FALSE;

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

        if($this->upload->do_upload())
        {
            $upload_result = $this->upload->data();             
            $rc = $this->_image_name_into_database(
                $last_insert_id,
                $upload_result['file_name']);               
            $image_config = array(
                'source_image'      =>$upload_result['full_path'],
                'new_image'             => './images/vehicles/thumbs/', 
                'create_thumb'      => TRUE,
                'maintain_ratio'    => TRUE,
                'width'                     => 75, 
                'height'                    => 50
            );

            $this->load->library('image_lib', $image_config);
            $resize_rc = $this->image_lib->resize();            
            $error += 0;            
        }
        else
        {    
            //if the image was not uploaded successfully, try resizing  
            $error += 1;
        }
    }
    if($error > 0)
    { 
        return FALSE; 
    }
    else
    { 
        return TRUE; 
    }     
}  

1 个答案:

答案 0 :(得分:2)

您的图像库参数未在循环中更新。当您致电$this->load->....时,将忽略重复的项目。您应该使用以下命令重新初始化图像库:

$this->image_lib->clear();
$this->image_lib->initialize($image_config);  

在每个->resize()之前