PageRenderTime 524ms CodeModel.GetById 262ms app.highlight 3ms RepoModel.GetById 178ms app.codeStats 0ms

/halogy/helpers/download_helper.php

https://bitbucket.org/haloweb/halogy-1.0/
PHP | 100 lines | 46 code | 12 blank | 42 comment | 8 complexity | c36fce64c9f41bc7f78766b3426c544f MD5 | raw file
  1<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2/**
  3 * CodeIgniter
  4 *
  5 * An open source application development framework for PHP 4.3.2 or newer
  6 *
  7 * @package		CodeIgniter
  8 * @author		ExpressionEngine Dev Team
  9 * @copyright	Copyright (c) 2008 - 2009, EllisLab, Inc.
 10 * @license		http://codeigniter.com/user_guide/license.html
 11 * @link		http://codeigniter.com
 12 * @since		Version 1.0
 13 * @filesource
 14 */
 15
 16// ------------------------------------------------------------------------
 17
 18/**
 19 * CodeIgniter Download Helpers
 20 *
 21 * @package		CodeIgniter
 22 * @subpackage	Helpers
 23 * @category	Helpers
 24 * @author		ExpressionEngine Dev Team
 25 * @link		http://codeigniter.com/user_guide/helpers/download_helper.html
 26 */
 27
 28// ------------------------------------------------------------------------
 29
 30/**
 31 * Force Download
 32 *
 33 * Generates headers that force a download to happen
 34 *
 35 * @access	public
 36 * @param	string	filename
 37 * @param	mixed	the data to be downloaded
 38 * @return	void
 39 */	
 40if ( ! function_exists('force_download'))
 41{
 42	function force_download($filename = '', $data = '')
 43	{
 44		if ($filename == '' OR $data == '')
 45		{
 46			return FALSE;
 47		}
 48
 49		// Try to determine if the filename includes a file extension.
 50		// We need it in order to set the MIME type
 51		if (FALSE === strpos($filename, '.'))
 52		{
 53			return FALSE;
 54		}
 55	
 56		// Grab the file extension
 57		$x = explode('.', $filename);
 58		$extension = end($x);
 59
 60		// Load the mime types
 61		@include(APPPATH.'config/mimes'.EXT);
 62	
 63		// Set a default mime if we can't find it
 64		if ( ! isset($mimes[$extension]))
 65		{
 66			$mime = 'application/octet-stream';
 67		}
 68		else
 69		{
 70			$mime = (is_array($mimes[$extension])) ? $mimes[$extension][0] : $mimes[$extension];
 71		}
 72	
 73		// Generate the server headers
 74		if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))
 75		{
 76			header('Content-Type: "'.$mime.'"');
 77			header('Content-Disposition: attachment; filename="'.$filename.'"');
 78			header('Expires: 0');
 79			header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 80			header("Content-Transfer-Encoding: binary");
 81			header('Pragma: public');
 82			header("Content-Length: ".strlen($data));
 83		}
 84		else
 85		{
 86			header('Content-Type: "'.$mime.'"');
 87			header('Content-Disposition: attachment; filename="'.$filename.'"');
 88			header("Content-Transfer-Encoding: binary");
 89			header('Expires: 0');
 90			header('Pragma: no-cache');
 91			header("Content-Length: ".strlen($data));
 92		}
 93	
 94		exit($data);
 95	}
 96}
 97
 98
 99/* End of file download_helper.php */
100/* Location: ./system/helpers/download_helper.php */