aboutsummaryrefslogtreecommitdiff
path: root/mod/file/actions
diff options
context:
space:
mode:
authorSem <sembrestels@riseup.net>2012-07-01 23:20:47 +0200
committerSem <sembrestels@riseup.net>2012-07-01 23:20:47 +0200
commit671f9ba4e1b1972d8eaf22acfb626fa2c85af0f2 (patch)
tree436b0de846650bce13436b51a2d5214224f8898c /mod/file/actions
parent3da3f2aa28a42c23bdc9d661e7e13fd6f2bd2b10 (diff)
parentb91d8bb0fea5cef9fafea72181a0007cfaa54725 (diff)
downloadelgg-671f9ba4e1b1972d8eaf22acfb626fa2c85af0f2.tar.gz
elgg-671f9ba4e1b1972d8eaf22acfb626fa2c85af0f2.tar.bz2
Upgraded to Elgg 1.8.6.
Merge tag '1.8.6' of git://github.com/Elgg/Elgg into lorea-preprod Elgg 1.8.6 release
Diffstat (limited to 'mod/file/actions')
-rw-r--r--mod/file/actions/file/upload.php25
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);