I’ve been strugling to find the reason behind a malfunctioning Excel upload feature. The problem was that some times, the file would not have the application/vnd.ms-excel mime type. This was a bit of an issue, it was required for invaliding the type of the file.
By luck, a coworker discovered that the Excel file would return a different mime type if the Excel file was open in Excel when it was uploaded. Under these conditions, the mime type is application/octet-stream. In other words, when uploading an open Excel doc, Internet Explorer would have trouble identifying the file type and send along the generic mime-type application/octet-stream.
Bellow is a quick fix that should take care of future problems:
if ( $_FILES['excel_file']['type'] == 'application/vnd.ms-excel'
|| preg_match('/\\.xls$/', $_FILES['excel_file']['name']) ) {
// continue working on the uploaded file...
} |