views:

29

answers:

2

I am trying to upload an image,create thumbnail but i get an error.

Here is my controller.

<?php
class Upload extends Controller {

    function Upload()
    {
        parent::Controller();
        $this->load->helper(array('form','url','file'));


    }

    function index()
    {

        $this->load->view('upload_form'); //Upload Form

    }

    function picupload()
    {
        //Load Model
        $this->load->model('Process_image');

        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size']    = '2048'; //2 meg


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

        foreach($_FILES as $key => $value)
        {
            if( ! empty($key['name']))
            {
                $this->upload->initialize($config);

                if ( ! $this->upload->do_upload($key))
                {
                    $errors[] = $this->upload->display_errors();

                }    
                else
                {

                    $this->Process_image->process_pic();

                }
             }

        }


        $data['success'] = 'Thank You, Files Upladed!';

        $this->load->view('upload_success', $data); //Picture Upload View




    }  
    }
    ?>

My model:

<?php
class Process_image extends Model {

    function Process_image()
    {
        parent::Model();

        $this->load->library('image_lib');
        //Generate random Activation code

        function generate_code($length = 10){

                if ($length <= 0)
                {
                    return false;
                }

                $code = "";
                $chars = "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
                srand((double)microtime() * 1000000);
                for ($i = 0; $i < $length; $i++)
                {
                    $code = $code . substr($chars, rand() % strlen($chars), 1);
                }
                return $code;

                }

    }

function process_pic()
    {   
        //Connect to database
        $this->load->database();

        //Get File Data Info
        $uploads = array($this->upload->data());

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

        //Move Files To User Folder
        foreach($uploads as $key[] => $value)
        {

                        //Gen Random code for new file name
            $randomcode = generate_code(12);

            $newimagename = $randomcode.$value['file_ext'];

            //Creat Thumbnail
            $config['image_library'] = 'GD2';
            $config['source_image'] = $value['full_path'];
            $config['create_thumb'] = TRUE;
            $config['thumb_marker'] = '_tn';
            $config['master_dim'] = 'width';
            $config['quality'] = 75;
            $config['maintain_ratio'] = TRUE;
            $config['width'] = 175;
            $config['height'] = 175;
            $config['new_image'] = '/pictures/'.$newimagename;

            //$this->image_lib->clear();
            $this->image_lib->initialize($config);
            //$this->load->library('image_lib', $config);
            $this->image_lib->resize();

            //Move Uploaded Files with NEW Random name
            rename($value['full_path'],'/pictures/'.$newimagename);

            //Make Some Variables for Database
            $imagename = $newimagename;
            $thumbnail = $randomcode.'_tn'.$value['file_ext'];
            $filesize = $value['file_size'];
            $width = $value['image_width'];
            $height = $value['image_height'];
            $timestamp = time();

            //Add Pic Info To Database
            $this->db->set('imagename', $imagename);
            $this->db->set('thumbnail', $thumbnail);
            $this->db->set('filesize', $filesize);
            $this->db->set('width', $width);
            $this->db->set('height', $height);
            $this->db->set('timestamp', $timestamp);

            //Insert Info Into Database
            $this->db->insert('pictures');

        }



    }  
    }
    ?>

The error:

A PHP Error was encountered

Severity: Warning

Message: rename(C:/wamp/www/uploads/Heaven_Clouds.jpg,/pictures/kFttl7lpE7Rk.jpg) [function.rename]: No such file or directory

Filename: models/Process_image.php

Line Number: 68

This is line 68:

rename($value['full_path'],'/pictures/'.$newimagename);
+3  A: 

Hello,

Remove the "/" before "picutres" in

rename($value['full_path'],'/pictures/'.$newimagename);

It wanna say that you want put your renamed file in a directory named "pictures" placed at the root of an Unix file system, then you're obviously in a Windows system and you do not seem to have a "pictures" directory at the root of your disk.

result :

rename($value['full_path'],'pictures/'.$newimagename);
G. Qyy
Thanks it worked.
objectiveME
Glad to read it. Don't forget to mark your question as answered ^^
G. Qyy