0

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?

Rocco
  • 1,087
  • 12
  • 21

2 Answers2

1

As you can see here this a common problem and the solution you applied is legitimate.

Yan Berk
  • 14,328
  • 9
  • 55
  • 52
0

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.

$finfo = @finfo_open(FILEINFO_MIME);
$mime = @finfo_file($finfo, $_FILES["myname"]['tmp_name']);

$mime will be extension which php finally returns.

Saurabh Bhandari
  • 2,438
  • 4
  • 26
  • 33
sourab
  • 11
  • 1