I'm experiencing a very odd upload problem. Here's the relevant view file:
<form action="http://localhost/index.php/temp/upload/" method="post" enctype="multipart/form-data">
<fieldset>
<input type="file" name="userfile"/>
<input type="submit" value="Upload"/>
</fieldset>
</form>
And here's my temp
controller's upload()
method:
public function upload()
{
$config['upload_path'] = FCPATH . 'uploads' . DIRECTORY_SEPARATOR;
assert(file_exists($config['upload_path']) === TRUE);
$config['allowed_types'] = 'avi|mpg|mpeg|wmv|jpg';
$config['max_size'] = '0';
$this->load->library('upload', $config);
if ($this->upload->do_upload('userfile') === FALSE)
{
// Some error occured
var_dump($this->upload->display_errors('', ''));
var_dump($_FILES);
}
else
{
// Upload successful
var_dump($this->upload->data());
}
}
When I upload an AVI video, everything works fine. When I upload, say, a WMV video, I get the following var dumps:
string 'The filetype you are attempting to upload is not allowed.' (length=57)
array
'userfile' =>
array
'name' => string 'wmv.wmv' (length=7)
'type' => string 'video/x-ms-wmv' (length=14)
'tmp_name' => string 'C:\wamp\tmp\php2333.tmp' (length=23)
'error' => int 0
'size' => int 83914
The "wmv" extension is being interpreted as the MIME type: video/x-ms-wmv
. This should be fine since my config/mimes.php has the following:
'wmv' => array('video/x-ms-wmv', 'audio/x-ms-wmv')
It's a similar situation when I try uploading other files. So far, the only one that seems to work is my test AVI video.
Any ideas what might be wrong?
UPDATE 1:
One my machine, only AVI uploads. On another developer's machine, no files upload. On yet another developer's machine, all supported files upload. Are these browser or server issues?
You are using Firefox, aren't you?
You could try looking at system/libraries/Upload.php
line 199:
$this->_file_mime_type($_FILES[$field]);
Change that line to:
$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();
Then do upload your .wmv
file. It would show something like application/octet-stream
or whatever. Add that to your mimes.php
. Hope this help =)
Similar answer here
Some links: