aboutsummaryrefslogtreecommitdiff
path: root/mod/file/actions
diff options
context:
space:
mode:
Diffstat (limited to 'mod/file/actions')
-rw-r--r--mod/file/actions/download.php26
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