diff options
author | cash <cash.costello@gmail.com> | 2011-11-05 15:43:50 -0400 |
---|---|---|
committer | cash <cash.costello@gmail.com> | 2011-11-05 15:43:50 -0400 |
commit | 272ac7519214f1b75d4b71247438612af8c86643 (patch) | |
tree | 08286498ec81f5783b58f5042ccf033399647405 /mod/file/pages/file/download.php | |
parent | 2d8d81df30e4a7ee65caf9469ba0cc486d494f29 (diff) | |
download | elgg-272ac7519214f1b75d4b71247438612af8c86643.tar.gz elgg-272ac7519214f1b75d4b71247438612af8c86643.tar.bz2 |
Fixes #4048 using page handler for file downloads
Diffstat (limited to 'mod/file/pages/file/download.php')
-rw-r--r-- | mod/file/pages/file/download.php | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/mod/file/pages/file/download.php b/mod/file/pages/file/download.php new file mode 100644 index 000000000..00e6d500e --- /dev/null +++ b/mod/file/pages/file/download.php @@ -0,0 +1,38 @@ +<?php +/** + * Elgg file download. + * + * @package ElggFile + */ + +// Get the guid +$file_guid = get_input("guid"); + +// Get the file +$file = get_entity($file_guid); +if (!$file) { + register_error(elgg_echo("file:downloadfailed")); + forward(); +} + +$mime = $file->getMimeType(); +if (!$mime) { + $mime = "application/octet-stream"; +} + +$filename = $file->originalfilename; + +// fix for IE https issue +header("Pragma: public"); + +header("Content-type: $mime"); +if (strpos($mime, "image/") !== false) { + header("Content-Disposition: inline; filename=\"$filename\""); +} else { + header("Content-Disposition: attachment; filename=\"$filename\""); +} + +ob_clean(); +flush(); +readfile($file->getFilenameOnFilestore()); +exit; |