diff options
Diffstat (limited to 'kohana/helpers/download.php')
-rw-r--r-- | kohana/helpers/download.php | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/kohana/helpers/download.php b/kohana/helpers/download.php deleted file mode 100644 index 49fed42c..00000000 --- a/kohana/helpers/download.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php defined('SYSPATH') OR die('No direct access allowed.'); -/** - * Download helper class. - * - * $Id: download.php 3769 2008-12-15 00:48:56Z zombor $ - * - * @package Core - * @author Kohana Team - * @copyright (c) 2007-2008 Kohana Team - * @license http://kohanaphp.com/license.html - */ -class download_Core { - - /** - * Force a download of a file to the user's browser. This function is - * binary-safe and will work with any MIME type that Kohana is aware of. - * - * @param string a file path or file name - * @param mixed data to be sent if the filename does not exist - * @param string suggested filename to display in the download - * @return void - */ - public static function force($filename = NULL, $data = NULL, $nicename = NULL) - { - if (empty($filename)) - return FALSE; - - if (is_file($filename)) - { - // Get the real path - $filepath = str_replace('\\', '/', realpath($filename)); - - // Set filesize - $filesize = filesize($filepath); - - // Get filename - $filename = substr(strrchr('/'.$filepath, '/'), 1); - - // Get extension - $extension = strtolower(substr(strrchr($filepath, '.'), 1)); - } - else - { - // Get filesize - $filesize = strlen($data); - - // Make sure the filename does not have directory info - $filename = substr(strrchr('/'.$filename, '/'), 1); - - // Get extension - $extension = strtolower(substr(strrchr($filename, '.'), 1)); - } - - // Get the mime type of the file - $mime = Kohana::config('mimes.'.$extension); - - if (empty($mime)) - { - // Set a default mime if none was found - $mime = array('application/octet-stream'); - } - - // Generate the server headers - header('Content-Type: '.$mime[0]); - header('Content-Disposition: attachment; filename="'.(empty($nicename) ? $filename : $nicename).'"'); - header('Content-Transfer-Encoding: binary'); - header('Content-Length: '.sprintf('%d', $filesize)); - - // More caching prevention - header('Expires: 0'); - - if (Kohana::user_agent('browser') === 'Internet Explorer') - { - // Send IE headers - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header('Pragma: public'); - } - else - { - // Send normal headers - header('Pragma: no-cache'); - } - - // Clear the output buffer - Kohana::close_buffers(FALSE); - - if (isset($filepath)) - { - // Open the file - $handle = fopen($filepath, 'rb'); - - // Send the file data - fpassthru($handle); - - // Close the file - fclose($handle); - } - else - { - // Send the file data - echo $data; - } - } - -} // End download
\ No newline at end of file |