0

Hi I am trying to use the codigniter do_upload function below: But get this error: "You did not select a file to upload." I do select a file and when i pass the name i can see the name but still can not upload...thanks in advance for the help.

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $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 = array('error' => $this->upload->display_errors());
        print_r($data);
        exit;
        //$this->load->view('clients_page', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());
        print_r($data);
        exit;
    }
}
gen_Eric
  • 223,194
  • 41
  • 299
  • 337
Shak
  • 1
  • 1

2 Answers2

3

I assume you're not naming your <input type="file" /> the default userfile. It would be nice to see your upload view also.

change this

$this->upload->do_upload()

to this

$this->upload->do_upload('audioRef')
jondavidjohn
  • 61,812
  • 21
  • 118
  • 158
2

I do select a file and when i pass the name i can see the name but still can not upload

This is often because you've omitted to set your form to submit as multipart/form-data. Forms default to application/x-www-form-urlencoded, which can't contain file uploads; in this case you just get the filename instead.

<form method="post" action="..." enctype="multipart/form-data">

Incidentally,

$config['allowed_types'] = 'gif|jpg|png';

if you must use filename extension to check file type (and it's inadvisable, but that's what CodeIgniter offers, unfortunately), please also allow jpeg and any other likely extensions.

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

If that uploads folder is within the webroot (you'll be serving files directly out of it), that's potentially a cross-site-scripting vulnerability. Unfortunately it is possible to upload files that look like images but in fact contain HTML, including <script>.

Doing user-uploaded-content in a safe way is hard. See eg this question for background.

Community
  • 1
  • 1
bobince
  • 528,062
  • 107
  • 651
  • 834