Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2005 Aurelien 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, 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
 */
40
if ( ! 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 */