diff options
Diffstat (limited to 'mod/file/actions')
-rw-r--r-- | mod/file/actions/file/upload.php | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index 88a01745d..3edc87952 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -19,6 +19,11 @@ if ($container_guid == 0) { elgg_make_sticky_form('file'); +// check if upload failed +if (!empty($_FILES['upload']['name']) && $_FILES['upload']['error'] != 0) { + register_error(elgg_echo('file:cannotload')); + forward(REFERER); +} // check whether this is a new file or an edit $new_file = true; @@ -29,7 +34,6 @@ if ($guid > 0) { if ($new_file) { // must have a file if a new file upload if (empty($_FILES['upload']['name'])) { - $error = elgg_echo('file:nofile'); register_error($error); forward(REFERER); @@ -90,10 +94,11 @@ if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { $filestorename = elgg_strtolower(time().$_FILES['upload']['name']); } - $file->setFilename($prefix.$filestorename); - $file->setMimeType($_FILES['upload']['type']); + $mime_type = $file->detectMimeType($_FILES['upload']['tmp_name'], $_FILES['upload']['type']); + $file->setFilename($prefix . $filestorename); + $file->setMimeType($mime_type); $file->originalfilename = $_FILES['upload']['name']; - $file->simpletype = file_get_simple_type($_FILES['upload']['type']); + $file->simpletype = file_get_simple_type($mime_type); // Open the file to guarantee the directory exists $file->open("write"); |