summaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rw-r--r--system/libraries/Upload.php76
1 files changed, 55 insertions, 21 deletions
diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php
index 1a0b0fc8f..ff0fb1cb9 100644
--- a/system/libraries/Upload.php
+++ b/system/libraries/Upload.php
@@ -36,7 +36,7 @@ class CI_Upload {
var $file_type = "";
var $file_size = "";
var $file_ext = "";
- var $file_path = "";
+ var $upload_path = "";
var $overwrite = FALSE;
var $encrypt_name = FALSE;
var $is_image = FALSE;
@@ -76,17 +76,51 @@ class CI_Upload {
*/
function initialize($config = array())
{
- foreach ($config as $key => $val)
- {
- $method = 'set_'.$key;
- if (method_exists($this, $method))
+ $defaults = array(
+ 'max_size' => 0,
+ 'max_width' => 0,
+ 'max_height' => 0,
+ 'allowed_types' => "",
+ 'file_temp' => "",
+ 'file_name' => "",
+ 'orig_name' => "",
+ 'file_type' => "",
+ 'file_size' => "",
+ 'file_ext' => "",
+ 'upload_path' => "",
+ 'overwrite' => FALSE,
+ 'encrypt_name' => FALSE,
+ 'is_image' => FALSE,
+ 'image_width' => '',
+ 'image_height' => '',
+ 'image_type' => '',
+ 'image_size_str' => '',
+ 'error_msg' => array(),
+ 'mimes' => array(),
+ 'remove_spaces' => TRUE,
+ 'xss_clean' => FALSE,
+ 'temp_prefix' => "temp_file_"
+ );
+
+
+ foreach ($defaults as $key => $val)
+ {
+ if (isset($config[$key]))
{
- $this->$method($val);
+ $method = 'set_'.$key;
+ if (method_exists($this, $method))
+ {
+ $this->$method($config[$key]);
+ }
+ else
+ {
+ $this->$key = $config[$key];
+ }
}
else
{
$this->$key = $val;
- }
+ }
}
}
@@ -188,7 +222,7 @@ class CI_Upload {
if ($this->overwrite == FALSE)
{
- $this->file_name = $this->set_filename($this->file_path, $this->file_name);
+ $this->file_name = $this->set_filename($this->upload_path, $this->file_name);
if ($this->file_name === FALSE)
{
@@ -203,9 +237,9 @@ class CI_Upload {
* we'll use move_uploaded_file(). One of the two should
* reliably work in most environments
*/
- if ( ! @copy($this->file_temp, $this->file_path.$this->file_name))
+ if ( ! @copy($this->file_temp, $this->upload_path.$this->file_name))
{
- if ( ! @move_uploaded_file($this->file_temp, $this->file_path.$this->file_name))
+ if ( ! @move_uploaded_file($this->file_temp, $this->upload_path.$this->file_name))
{
$this->set_error('upload_destination_error');
return FALSE;
@@ -229,7 +263,7 @@ class CI_Upload {
* file was an image). We use this information
* in the "data" function.
*/
- $this->set_image_properties($this->file_path.$this->file_name);
+ $this->set_image_properties($this->upload_path.$this->file_name);
return TRUE;
}
@@ -250,8 +284,8 @@ class CI_Upload {
return array (
'file_name' => $this->file_name,
'file_type' => $this->file_type,
- 'file_path' => $this->file_path,
- 'full_path' => $this->file_path.$this->file_name,
+ 'file_path' => $this->upload_path,
+ 'full_path' => $this->upload_path.$this->file_name,
'raw_name' => str_replace($this->file_ext, '', $this->file_name),
'orig_name' => $this->orig_name,
'file_ext' => $this->file_ext,
@@ -275,7 +309,7 @@ class CI_Upload {
*/
function set_upload_path($path)
{
- $this->file_path = $path;
+ $this->upload_path = $path;
}
// --------------------------------------------------------------------
@@ -564,30 +598,30 @@ class CI_Upload {
*/
function validate_upload_path()
{
- if ($this->file_path == '')
+ if ($this->upload_path == '')
{
$this->set_error('upload_no_filepath');
return FALSE;
}
- if (function_exists('realpath') AND @realpath($this->file_path) !== FALSE)
+ if (function_exists('realpath') AND @realpath($this->upload_path) !== FALSE)
{
- $this->file_path = str_replace("\\", "/", realpath($this->file_path));
+ $this->upload_path = str_replace("\\", "/", realpath($this->upload_path));
}
- if ( ! @is_dir($this->file_path))
+ if ( ! @is_dir($this->upload_path))
{
$this->set_error('upload_no_filepath');
return FALSE;
}
- if ( ! is_writable($this->file_path))
+ if ( ! is_writable($this->upload_path))
{
$this->set_error('upload_not_writable');
return FALSE;
}
- $this->file_path = preg_replace("/(.+?)\/*$/", "\\1/", $this->file_path);
+ $this->upload_path = preg_replace("/(.+?)\/*$/", "\\1/", $this->upload_path);
return TRUE;
}
@@ -668,7 +702,7 @@ class CI_Upload {
*/
function do_xss_clean()
{
- $file = $this->file_path.$this->file_name;
+ $file = $this->upload_path.$this->file_name;
if (filesize($file) == 0)
{