diff options
Diffstat (limited to 'forum/utils/file.php')
-rw-r--r-- | forum/utils/file.php | 31 |
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 |