Sometimes, when uploading files using <input>
tag, I encounter problem where the file extension doesn't match with its mime type defined in application/config/mimes.php
. For example when I upload a .doc
file, it turns out that its mime type is actually application/octet-stream
, not application/msword
as expected.
I had this problem sometimes in the past. I did work around by adding application/octet-stream
to .doc
mime array. But is there a proper way to fix it?
I think the browser have force my file's mime type somehow. Is there any kind of HTTP header or html meta tag to prevent this?
It is not due to problem with codeignitor. It is due to php issue. For instance
finfo_file
function will return image with extension jpeg as image/png.So, solution is go to
config/mimes.php
file and then add corresponding extension.In case you do not know what is the extension behind the scene php is picking add this code to check.
$mime
will be extension which php finally returns.As you can see here this a common problem and the solution you applied is legitimate.