diff options
Diffstat (limited to 'mod/file/actions')
-rw-r--r-- | mod/file/actions/download.php | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/mod/file/actions/download.php b/mod/file/actions/download.php index 4ea08ae84..19ef86d90 100644 --- a/mod/file/actions/download.php +++ b/mod/file/actions/download.php @@ -8,9 +8,31 @@ * @link http://elgg.com/ */ - + // Get the guid $file_guid = get_input("file_guid"); + // Get the file + $file = get_entity($file_guid); - echo "$file_guid"; + if ($file) + { + $mime = $file->getMimeType(); + if (!$mime) $mime = "application/octet-stream"; + + $filename = $file->getFilename(); + + header("Content-type: $mime"); + header("Content-Disposition: attachment; filename=\"$filename\""); + + $file->open("read"); + + while (!$file->eof()) + { + echo $file->read(10240, $file->tell()); + } + + $file->close(); + } + else + system_message(elgg_echo("file:downloadfailed")); ?>
\ No newline at end of file |