summaryrefslogtreecommitdiff
path: root/forum/utils/file.php
diff options
context:
space:
mode:
Diffstat (limited to 'forum/utils/file.php')
-rw-r--r--forum/utils/file.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/forum/utils/file.php b/forum/utils/file.php
new file mode 100644
index 0000000..50993b5
--- /dev/null
+++ b/forum/utils/file.php
@@ -0,0 +1,31 @@
+<?php
+
+include_once("config.php");
+include_once($UTIL_DIR . "/mimetypes.php");
+include_once($UTIL_DIR . "/files.php");
+
+function getFile($fid)
+{
+ global $DATA_DIR, $PERMSTORE, $MIME_TYPES;
+ $files = new Files($DATA_DIR . "/files.xml");
+ $file = $files->getFile($fid);
+
+ $filename = $PERMSTORE . "/" . $file->fid;
+
+ $download = false;
+ foreach($MIME_TYPES as $m) {
+ if($m->name == $file->mimetype) $download = !$m->show;
+ }
+
+ //header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
+ header('Content-Description: File Transfer');
+ header('Content-Type: ' . $file->mimetype);
+ header('Content-Length: ' . filesize($filename));
+
+ if($download) header('Content-Disposition: attachment; filename=' . basename($file->name));
+ else header('Content-Disposition: inline; filename=' . basename($file->name));
+
+ readfile($filename);
+}
+
+?> \ No newline at end of file