diff options
Diffstat (limited to 'wiki/lib/exe/fetch.php')
-rw-r--r-- | wiki/lib/exe/fetch.php | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/wiki/lib/exe/fetch.php b/wiki/lib/exe/fetch.php deleted file mode 100644 index 933367e..0000000 --- a/wiki/lib/exe/fetch.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php -/** - * DokuWiki media passthrough file - * - * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * @author Andreas Gohr <andi@splitbrain.org> - */ - -if(!defined('DOKU_INC')) define('DOKU_INC', dirname(__FILE__).'/../../'); -if (!defined('DOKU_DISABLE_GZIP_OUTPUT')) define('DOKU_DISABLE_GZIP_OUTPUT', 1); -require_once(DOKU_INC.'inc/init.php'); -session_write_close(); //close session - -require_once(DOKU_INC.'inc/fetch.functions.php'); - -if (defined('SIMPLE_TEST')) { - $INPUT = new Input(); -} - -// BEGIN main - $mimetypes = getMimeTypes(); - - //get input - $MEDIA = stripctl(getID('media', false)); // no cleaning except control chars - maybe external - $CACHE = calc_cache($INPUT->str('cache')); - $WIDTH = $INPUT->int('w'); - $HEIGHT = $INPUT->int('h'); - $REV = & $INPUT->ref('rev'); - //sanitize revision - $REV = preg_replace('/[^0-9]/', '', $REV); - - list($EXT, $MIME, $DL) = mimetype($MEDIA, false); - if($EXT === false) { - $EXT = 'unknown'; - $MIME = 'application/octet-stream'; - $DL = true; - } - - // check for permissions, preconditions and cache external files - list($STATUS, $STATUSMESSAGE) = checkFileStatus($MEDIA, $FILE, $REV, $WIDTH, $HEIGHT); - - // prepare data for plugin events - $data = array( - 'media' => $MEDIA, - 'file' => $FILE, - 'orig' => $FILE, - 'mime' => $MIME, - 'download' => $DL, - 'cache' => $CACHE, - 'ext' => $EXT, - 'width' => $WIDTH, - 'height' => $HEIGHT, - 'status' => $STATUS, - 'statusmessage' => $STATUSMESSAGE, - 'ispublic' => media_ispublic($MEDIA), - ); - - // handle the file status - $evt = new Doku_Event('FETCH_MEDIA_STATUS', $data); - if($evt->advise_before()) { - // redirects - if($data['status'] > 300 && $data['status'] <= 304) { - if (defined('SIMPLE_TEST')) return; //TestResponse doesn't recognize redirects - send_redirect($data['statusmessage']); - } - // send any non 200 status - if($data['status'] != 200) { - http_status($data['status'], $data['statusmessage']); - } - // die on errors - if($data['status'] > 203) { - print $data['statusmessage']; - if (defined('SIMPLE_TEST')) return; - exit; - } - } - $evt->advise_after(); - unset($evt); - - //handle image resizing/cropping - if((substr($MIME, 0, 5) == 'image') && ($WIDTH || $HEIGHT)) { - if($HEIGHT && $WIDTH) { - $data['file'] = $FILE = media_crop_image($data['file'], $EXT, $WIDTH, $HEIGHT); - } else { - $data['file'] = $FILE = media_resize_image($data['file'], $EXT, $WIDTH, $HEIGHT); - } - } - - // finally send the file to the client - $evt = new Doku_Event('MEDIA_SENDFILE', $data); - if($evt->advise_before()) { - sendFile($data['file'], $data['mime'], $data['download'], $data['cache'], $data['ispublic'], $data['orig']); - } - // Do something after the download finished. - $evt->advise_after(); // will not be emitted on 304 or x-sendfile - -// END DO main - -//Setup VIM: ex: et ts=2 : |