1

Here's my code :

if(isset($_FILES["image"])){
            $upload_dir = "files/images/user/profile/";
            $ext = end(explode(".", $_FILES["image"]["name"]));
            $config['upload_path'] = $upload_dir."original/";
            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = "2048";
            $config['encrypt_name'] = TRUE;
            // $config['file_name'] = $this->session->userdata("username").time().".".$ext;

            $this->load->library("upload", $config);
            if($this->upload->do_upload("image")){
                $image = $this->upload->data();
                $conf_res["image_library"] = "gd2";
                $conf_res["source_img"] = realpath($upload_dir."original/".$image["file_name"]);
                $conf_res["new_image"] = $upload_dir."200x200/".$image["file_name"];
                $conf_res["create_thumb"] = TRUE;
                $conf_res["maintain_ratio"] = TRUE;
                $conf_res["width"] = 200;
                $conf_res["height"] = 200;

                $this->load->library("image_lib", $conf_res);
                if($this->image_lib->resize()){
                    echo "done."; die();
                } else {
                    echo $this->image_lib->display_errors().$conf_res["new_image"].$image["file_name"];
                }

            } else {
                $error = $this->upload->display_errors();
                echo $error.$config['upload_path'];
            }

        }

And the error i'm getting is :

<p>You must specify a source image in your preferences.</p>
<p>Your server does not support the GD function required to process this type of image.</p>
files/images/user/profile/200x200/2606737d1b67a54cfea0a9d4f16ef336.jpg
2606737d1b67a54cfea0a9d4f16ef336.jpg

I've been thinking for about an hour what is wrong with my path. I've even checked phpinfo if it has gd2 installed. I cant find out what is the problem!

Dangling Cruze
  • 3,283
  • 3
  • 32
  • 43

1 Answers1

1

Try changing from

$conf_res["source_img"] = realpath($upload_dir."original/".$image["file_name"]);

to this

$conf_res['source_image']   = realpath($upload_dir."original/".$image["file_name"]);

and this also

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

See more info here

Nouphal.M
  • 6,304
  • 1
  • 17
  • 28