diff options
author | Derek Allard <derek.allard@ellislab.com> | 2007-02-14 00:46:23 +0100 |
---|---|---|
committer | Derek Allard <derek.allard@ellislab.com> | 2007-02-14 00:46:23 +0100 |
commit | dbbe40862c895296a9e3d9e184ff2da3788800d4 (patch) | |
tree | cb9d2c8b009960db7c73e75acac634a99706871c /system/helpers/download_helper.php | |
parent | 655bc02b4992d0ed764363f8181459d6390be24b (diff) |
changed Content-Disposition: from "inline" to "attachment" for MSIE in force_download()
Diffstat (limited to 'system/helpers/download_helper.php')
-rw-r--r-- | system/helpers/download_helper.php | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index dbedd8722..34cc152cc 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -1,96 +1,96 @@ -<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); -/** - * Code Igniter - * - * An open source application development framework for PHP 4.3.2 or newer - * - * @package CodeIgniter - * @author Rick Ellis - * @copyright Copyright (c) 2006, pMachine, Inc. - * @license http://www.codeignitor.com/user_guide/license.html - * @link http://www.codeigniter.com - * @since Version 1.0 - * @filesource - */ - -// ------------------------------------------------------------------------ - -/** - * Code Igniter Download Helpers - * - * @package CodeIgniter - * @subpackage Helpers - * @category Helpers - * @author Rick Ellis - * @link http://www.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 - */ -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 - @include(APPPATH.'config/mimes'.EXT); - - // 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 (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) - { - header('Content-Type: "'.$mime.'"'); - header('Content-Disposition: inline; 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)); - } - - echo $data; -} - - +<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * Code Igniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package CodeIgniter
+ * @author Rick Ellis
+ * @copyright Copyright (c) 2006, pMachine, Inc.
+ * @license http://www.codeignitor.com/user_guide/license.html
+ * @link http://www.codeigniter.com
+ * @since Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Code Igniter Download Helpers
+ *
+ * @package CodeIgniter
+ * @subpackage Helpers
+ * @category Helpers
+ * @author Rick Ellis
+ * @link http://www.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
+ */
+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
+ @include(APPPATH.'config/mimes'.EXT);
+
+ // 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 (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))
+ {
+ 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));
+ }
+
+ echo $data;
+}
+
+
?>
\ No newline at end of file |