1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
\r
5 * An open source application development framework for PHP 4.3.2 or newer
\r
7 * @package CodeIgniter
\r
8 * @author ExpressionEngine Dev Team
\r
9 * @copyright Copyright (c) 2008, EllisLab, Inc.
\r
10 * @license http://codeigniter.com/user_guide/license.html
\r
11 * @link http://codeigniter.com
\r
12 * @since Version 1.0
\r
16 // ------------------------------------------------------------------------
\r
19 * CodeIgniter Download Helpers
\r
21 * @package CodeIgniter
\r
22 * @subpackage Helpers
\r
24 * @author ExpressionEngine Dev Team
\r
25 * @link http://codeigniter.com/user_guide/helpers/download_helper.html
\r
28 // ------------------------------------------------------------------------
\r
33 * Generates headers that force a download to happen
\r
36 * @param string filename
\r
37 * @param mixed the data to be downloaded
\r
40 if ( ! function_exists('force_download'))
\r
42 function force_download($filename = '', $data = '')
\r
44 if ($filename == '' OR $data == '')
\r
49 // Try to determine if the filename includes a file extension.
\r
50 // We need it in order to set the MIME type
\r
51 if (FALSE === strpos($filename, '.'))
\r
56 // Grab the file extension
\r
57 $x = explode('.', $filename);
\r
58 $extension = end($x);
\r
60 // Load the mime types
\r
61 @include(APPPATH.'config/mimes'.EXT);
\r
63 // Set a default mime if we can't find it
\r
64 if ( ! isset($mimes[$extension]))
\r
66 $mime = 'application/octet-stream';
\r
70 $mime = (is_array($mimes[$extension])) ? $mimes[$extension][0] : $mimes[$extension];
\r
73 // Generate the server headers
\r
74 if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))
\r
76 header('Content-Type: "'.$mime.'"');
\r
77 header('Content-Disposition: attachment; filename="'.$filename.'"');
\r
78 header('Expires: 0');
\r
79 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
\r
80 header("Content-Transfer-Encoding: binary");
\r
81 header('Pragma: public');
\r
82 header("Content-Length: ".strlen($data));
\r
86 header('Content-Type: "'.$mime.'"');
\r
87 header('Content-Disposition: attachment; filename="'.$filename.'"');
\r
88 header("Content-Transfer-Encoding: binary");
\r
89 header('Expires: 0');
\r
90 header('Pragma: no-cache');
\r
91 header("Content-Length: ".strlen($data));
\r
99 /* End of file download_helper.php */
\r
100 /* Location: ./system/helpers/download_helper.php */