Application Octet Stream
I'm working on a PHP application that must import an excel file into MySQL. So I need to convert the excel file to .csv format. But when I want to get its type using $_FILE['something']['type']
, I get application/octet-stream
as its mime-type;
I think there is something wrong here. Because I gathered the list below as a .csv file mime-type:
What's the matter ?
4 Answers
In times like these, the official HTTP specification is always helpful. From RFC 2616 7.2.1 (my emphasis added):
Any HTTP/1.1 message containing an entity-body SHOULD include a Content-Type header field defining the media type of that body. If and only if the media type is not given by a Content-Type field, the recipient MAY attempt to guess the media type via inspection of its content and/or the name extension(s) of the URI used to identify the resource. If the media type remains unknown, the recipient SHOULD treat it as type 'application/octet-stream'.
The one thing that distinguishes most third-party firewalls from Windows Firewall is that they manage which programs can access the network and internet. You can dig into Windows Firewall's advanced settings to do something similar, but it doesn't give you much help. In GlassWire's default mode, clicking the flame icon next to any program puts it on the block list. Doing so doesn't change the allowed or blocked status of known apps, it just blocks all connections until you end the blocking mode. You can also set it to block all network traffic, if you wish.
The cause of your issue is that the server accepting the file upload does not itself know what type of file has been uploaded. Why? Because it relies on the the HTTP message which sent the file to specify a Content-Type
header to determine the exact mime-type. The browser has likely not sent a Content-Type
header and the server has assumed application/octet-stream
as per the official HTTP specification excerpt above. It's also possible that the client uploading the file opted not to determine the mime type of the file it was uploading and sent the Content-Type: application/octet-stream
header itself.
Now, when we consider this in conjunction with the PHP manual entry regarding POST file uploadsdocs, we see the following:
Malayalam mp3 songs free download. $_FILES['userfile']['type']
The mime type of the file, if the browser provided this information. An example would be 'image/gif'. This mime type is however not checked on the PHP side and therefore don't take its value for granted.
So as you can see, even if $_FILES['userfile']['type']
is specified, it only corresponds to the Content-Type
header sent by the client. This information can easily be faked and should not be relied upon. If you need to be sure Rossi front sight blade. that the uploaded file is of a specific type, you'll have to verify that yourself.
application/octet-stream
is always used if the mime type is not known.
All of the mime-types you listed show up as common mime-types for csv files on http://filext.com/file-extension/CSV
So basically I'd say it comes down to which program generated the .csv file and which mime-type they decided to use.
$_FILE['something']['type']
is populated by the browser / user OS, so it is not reliable. You should make your own check at server side to determine if uploaded file was in desired format.