K.K. Smith
K.K. Smith

Reputation: 992

Trying to upload photo in Codeigniter - not finding my upload folder - ideas why?

I'm trying to upload profile pics during a registration process with CI ($me !== 'experienced' )

Here is my method ... nothing strange

function do_upload()
{
    $config['upload_path'] = base_url('/upload_pic/');
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

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

    if ( ! $this->upload->do_upload() )
    {
        $data['message'] = $this->upload->display_errors() . $config['upload_path'];
        $this->load->view('profile_photo_view', $data);
    }
    else
    {
        $data['message'] = $this->upload->data();
        $this->load->view('upload_success', $data);
    }
}

.. but it is failing. As you can see, I have the upload path passing to my fail page for display, and this is what it is showing..

The upload path does not appear to be valid. 
http://localhost:8888/MY_SITE/upload_pic

That is where my upload folder is. And I have full 777 permissions on it..

.. any idea what could be wrong? And will trailing slashes always be stripped like that?

Upvotes: 1

Views: 889

Answers (3)

stormdrain
stormdrain

Reputation: 7895

base_url will give you...wait for it...a URL :)

You need a path for uploads.

$config['upload_path'] = '/full/path/to/upload_pic/';

or you can use relative paths:

$config['upload_path'] = '../upload_pic';

but you have to give it a path, not a URL.

Upvotes: 2

dakdad
dakdad

Reputation: 2955

As @stormdrain pointed out, base_url() is there to get the URL, not a filesystem path. Try:

$config['upload_path'] = dirname(FCPATH) . '/upload_pic/';

Upvotes: 1

Philip
Philip

Reputation: 4592

Try this

$config['upload_path'] = base_url() . '/upload_pic/';

or inside index.php append this

define('UPLOADS', 'upload_pic');

then set config to

$config['upload_path'] = UPLOADS;

Upvotes: -1

Related Questions