diff options
author | Sem <sembrestels@riseup.net> | 2012-07-01 23:31:08 +0200 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2012-07-01 23:31:08 +0200 |
commit | ea0140d87534c3b10e489d13a1449ebb79da832d (patch) | |
tree | 85667ae651bc5cc9f0ea01c6f3871bbdee36a469 /mod/file/actions | |
parent | 157117475338bcaab5fc3453ec54250343da595c (diff) | |
parent | 671f9ba4e1b1972d8eaf22acfb626fa2c85af0f2 (diff) | |
download | elgg-ea0140d87534c3b10e489d13a1449ebb79da832d.tar.gz elgg-ea0140d87534c3b10e489d13a1449ebb79da832d.tar.bz2 |
Merge branch 'lorea-preprod'
Diffstat (limited to 'mod/file/actions')
-rw-r--r-- | mod/file/actions/file/upload.php | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index 5242cbda2..d72d04eb7 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -94,8 +94,31 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { $filestorename = elgg_strtolower(time().$_FILES['upload']['name']); } - $mime_type = $file->detectMimeType($_FILES['upload']['tmp_name'], $_FILES['upload']['type']); $file->setFilename($prefix . $filestorename); + $mime_type = ElggFile::detectMimeType($_FILES['upload']['tmp_name'], $_FILES['upload']['type']); + + // hack for Microsoft zipped formats + $info = pathinfo($_FILES['upload']['name']); + $office_formats = array('docx', 'xlsx', 'pptx'); + if ($mime_type == "application/zip" && in_array($info['extension'], $office_formats)) { + switch ($info['extension']) { + case 'docx': + $mime_type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; + break; + case 'xlsx': + $mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + break; + case 'pptx': + $mime_type = "application/vnd.openxmlformats-officedocument.presentationml.presentation"; + break; + } + } + + // check for bad ppt detection + if ($mime_type == "application/vnd.ms-office" && $info['extension'] == "ppt") { + $mime_type = "application/vnd.ms-powerpoint"; + } + $file->setMimeType($mime_type); $file->originalfilename = $_FILES['upload']['name']; $file->simpletype = file_get_simple_type($mime_type); |