CodeIgniter загрузите несколько изображений и измените их размер

0

Поскольку я новичок в PHP, я сталкиваюсь с трудностями даже после помощи учебников. Мой код загружает несколько изображений, но он изменяет размер только 1-го изображения, а остальные фотографии остаются такими же, как и они. Я попробовал unset и clear(), но проблема такая же. Я буду очень признателен, если кто-нибудь поможет мне решить эту проблему.

function do_upload()
    {    
        $files = $_FILES;    
        $cpt = count($_FILES['userfile']['name']);

        for($i=0; $i<$cpt; $i++)
        {

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

            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size']    = '2000';
            $config['max_width']   = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);

            if ( ! $this->upload->do_upload())
            {
                $error = array('error' => $this->upload->display_errors());    
                $this->load->view('upload_form', $error);
            }
            else
            {
                $data = array('upload_data' => $this->upload->data());    
                $path=$data['upload_data']['full_path'];
                $q['name']=$data['upload_data']['file_name'];

                 $configi['image_library'] = 'gd2';
                 $configi['source_image']   = $path;
                 $configi['maintain_ratio'] = TRUE;
                 $configi['width']  = 75;
                 $configi['height'] = 50;

                $this->load->library('image_lib', $configi);    
                $this->image_lib->resize();

                $this -> load -> view('upload_success', $q);
                unset($configi);
                $this->load->library('image_lib');
                $this->image_lib->clear(); }}}
Теги:
codeigniter

1 ответ

1
Лучший ответ

на последней 6-й строке я использовал

$this->load->library('image_lib', $configi);

Но когда мы загружаем библиотеку в цикл с помощью $ configi, она делает мгновение, когда цикл выполняется в первый раз. для использования новых значений при каждом приращении цикла мы должны выполнять их отдельно, например:

$this->load->library('image_lib');
$this->image_lib->initialize($configi);

и используя этот способ, $ configi принимает новые значения при каждом приращении цикла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню