Welcome Guest, Not a member yet? Register   Sign In
Loop not looping fully
#1

[eluser]sico87[/eluser]
I am using the codeigniter Multi_upload library, and when I am looping through my files array to create thumbnails on the first image in the array is changed to a thumbnail no others get affected can any one see why?

Code:
function saveContentImages() {
    $this->load->model('categoryModel');
    if($query = $this->categoryModel->getCategoryByContentId($this->input->post('contentTitle'))){
        foreach($query as $k => $v) {
            $categoryTitle = strtolower($v['categoryTitle']);
        }
    }
    // we now need to set up the configuration that the upload
    // library expects to see.
    $config['upload_path'] = 'media/uploads/'.$categoryTitle;
    $config['allowed_types'] = 'gif|jpg|jpeg|png';
    $config['max_size'] = '1000';
    $sonfig['max_width'] = '1024';
    $config['max_height'] = '768';
    if(!file_exists($config['upload_path'])) {
        mkdir($config['upload_path'], 0777);
    }
    // load in both the libaries that the image upload we will
    // we import codeigniters own upload library and also a library
    // from the community that allows for multiple uploads with the help
    // of jQuery
    $this->load->library('upload', $config);
    $this->load->library('Multi_upload');
    // we can now do the multiple upload
    $files = $this->multi_upload->go_upload();
    echo $this->upload->display_errors();
    if(!$files) {
        $this->load->model('categoryModel');
        if($query = $this->categoryModel->getCategoryByContentId($this->input->post('contentTitle'))){
            foreach($query as $k => $v) {
                $categoryTitle = strtolower($v['categoryTitle']);
            }
        }
    } else {
        // we now need to do some GD library work so that the content can
        // have thumbnail images
            foreach ($files as $image) {
            $gd['image_library'] = 'gd2';
            $gd['source_image'] = $image['file'];
            $gd['create_thumb'] = TRUE;
            $gd['maintain_ratio'] = TRUE;
            $gd['width'] = 63;
            $gd['height'] = 48;

            $this->load->library('image_lib', $gd);
            $resize = $this->image_lib->resize();
            echo $resize."<br />";
            // this condition gets run if the resize fails
            echo $this->image_lib->display_errors();
            if(!$resize) {
                echo $this->image_lib->display_errors();
            }
        }
        // loop through the $files array and save each image in the array
        foreach($files as $image) {
            $this->load->model('imageModel');
            $query = $this->imageModel->saveContentImages($this->input->post('contentTitle'), $image);
        }
        $data['formSubmitted'] = "Images";
        $this->load->view('admin/successPage', $data);
    }
}

and this is $files array when i print_r

Code:
( [0] => Array ( [name] => orange.png [file] => /Users/Simon/Sites/mysite/media/uploads/blog/orange.png [size] => 3.07 [ext] => .png [image_type] => png [height] => 703 [width] => 1000 )

[1] => Array
    (
        [name] => yellow.png
        [file] => /Users/Simon/Sites/mysite/media/uploads/blog/yellow.png
        [size] => 3.06
        [ext] => .png
        [image_type] => png
        [height] => 703
        [width] => 1000
    )

[2] => Array
    (
        [name] => purple.png
        [file] => /Users/Simon/Sites/mysite/media/uploads/blog/purple.png
        [size] => 3.07
        [ext] => .png
        [image_type] => png
        [height] => 703
        [width] => 1000
    )

)

Is there any reason it would be doing this or is there any checks I can do?
#2

[eluser]Aken[/eluser]
You have to use this function $this->image_lib->clear(); after you use the resize function in your loop, or the library will only recognize the config settings from the first time it loaded. Right now your loop is resizing the first image over and over.




Theme © iAndrew 2016 - Forum software by © MyBB