I know (from the answer to this question: .rar, .zip files MIME Type) that that most people check zip files in PHP as \[code\]application/zip\[/code\] or \[code\]application/octet-stream\[/code\], but I have a couple of questions about this:
- is it safe just to check for \[code\]application/octet-stream\[/code\] (given that \[code\]application/octet-stream\[/code\] can be used to describe many more file types than just zip!). I know I could check the file in other ways too, but thought I should try and keep everything as simple as possible
- I've tried to check for as many different actual zip types as possible; but, there are some which give some unexpected results. I've found 1 for which the mime-type is \[code\]application/x-external-editor\[/code\], but PHP has problems dealing with it (although the only error I get is \[code\]Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object\[/code\]) - is this documented anywhere? Is there a list of actual \[code\]x-\[/code\] mimetypes which PHP can cope with?
- I'm checking the mime type by using \[code\]$_FILES['fileatt']['type']\[/code\], but using \[code\]mime_content_type()\[/code\] gives the same result. Different zip files seem to be any one of the following: \[code\]'application/zip'\[/code\], \[code\]'application/x-compressed'\[/code\], \[code\]'application/x-zip-compressed'\[/code\], \[code\]'application/x-compressed'\[/code\], \[code\]'multipart/x-zip'\[/code\]. I didn't understand why I got an error when the mime type was detected as being \[code\]application/x-external-editor\[/code\].
- I have got the zip extension installed, and I am extracting all the files from the zip files when they are uploaded. I hadn't thought about checking the error.