<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**

 * CodeIgniter

 *

 * An open source application development framework for PHP 5.1.6 or newer

 *

 * @package		CodeIgniter

 * @author		ExpressionEngine Dev Team

 * @copyright	Copyright (c) 2008 - 2011, EllisLab, Inc.

 * @license		http://codeigniter.com/user_guide/license.html

 * @link		http://codeigniter.com

 * @since		Version 1.0

 * @filesource

 */



// ------------------------------------------------------------------------



/**

 * CodeIgniter Download Helpers

 *

 * @package		CodeIgniter

 * @subpackage	Helpers

 * @category	Helpers

 * @author		ExpressionEngine Dev Team

 * @link		http://codeigniter.com/user_guide/helpers/download_helper.html

 */



// ------------------------------------------------------------------------



/**

 * Force Download

 *

 * Generates headers that force a download to happen

 *

 * @access	public

 * @param	string	filename

 * @param	mixed	the data to be downloaded

 * @return	void

 */

if ( ! function_exists('force_download'))

{

	function force_download($filename = '', $data = '')

	{

		if ($filename == '' OR $data == '')

		{

			return FALSE;

		}



		// Try to determine if the filename includes a file extension.

		// We need it in order to set the MIME type

		if (FALSE === strpos($filename, '.'))

		{

			return FALSE;

		}



		// Grab the file extension

		$x = explode('.', $filename);

		$extension = end($x);



		// Load the mime types

		if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))

		{

			include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php');

		}

		elseif (is_file(APPPATH.'config/mimes.php'))

		{

			include(APPPATH.'config/mimes.php');

		}



		// Set a default mime if we can't find it

		if ( ! isset($mimes[$extension]))

		{

			$mime = 'application/octet-stream';

		}

		else

		{

			$mime = (is_array($mimes[$extension])) ? $mimes[$extension][0] : $mimes[$extension];

		}



		// Generate the server headers

		if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE") !== FALSE)

		{

			header('Content-Type: "'.$mime.'"');

			header('Content-Disposition: attachment; filename="'.$filename.'"');

			header('Expires: 0');

			header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

			header("Content-Transfer-Encoding: binary");

			header('Pragma: public');

			header("Content-Length: ".strlen($data));

		}

		else

		{

			header('Content-Type: "'.$mime.'"');

			header('Content-Disposition: attachment; filename="'.$filename.'"');

			header("Content-Transfer-Encoding: binary");

			header('Expires: 0');

			header('Pragma: no-cache');

			header("Content-Length: ".strlen($data));

		}



		exit($data);

	}

}





/* End of file download_helper.php */

/* Location: ./system/helpers/download_helper.php */