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 9151208f..00000000 --- a/kohana/helpers/download.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php defined('SYSPATH') or die('No direct script access.'); -/** - * Download helper class. - * - * $Id$ - * - * @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 | 
