As you can see it is super simple. I've also set my 'uploads' folder to have 777 permissions. I don't have any htaccess files. In my config file I have $config['index_page'] = 'index.php';

So there can be no way any .htaccess files are causing a problem. Also there are NO htaccess files within the 'uploads' folder.

In my controller I've allowed for all filetypes to be uploaded and no restrictions on size. For testing on my live server I have tried to upload a tiny jpg, and a tiny text file. Again it doesn't work. But it DOES work on my localhost!!

The other strange thing is the file upload error message says 'You did not select a file to upload'

Which is stupid because I am, and it works fine in localhost.

The PHP versions are the same on localhost and on my production server. I have not changed the directory structure in localhost and my production server. All files are identical except for the baseurl which I've obviously changed to my domain address.

Localhost I'm using a linux server, my production server is centos, so effectively there should be no issues with file case sensitivity.

As I said before the uploads folder is writtable, and the only thing I have to work with is that confusing error message!

I've experienced this kind of issue in past, it was due to a mismatch of mime-types and I fixed by updating the application/config/mimes.php file. But I was trying to upload PDFs and images.

Set the environment constant in the main index.php file to the development stage, set the log_threshold to 4 in the application/config/config.php file and then create a new method in your controller to get a verbose output: