diff options
author | Nils Adermann <naderman@naderman.de> | 2013-10-13 16:01:00 -0700 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2013-10-13 16:01:00 -0700 |
commit | 40932c26eaa7cddd0731b136a77c9bad704b69e0 (patch) | |
tree | 35dc039190cbb9cc20bbc6577a303cd3ddc1d328 /phpBB/includes/functions_upload.php | |
parent | 5927f0dbf2cd6bfe2db19f5703703af43cea64c8 (diff) | |
parent | 9f1c6279882e34df5b328680029d16b7e91ec126 (diff) | |
download | forums-40932c26eaa7cddd0731b136a77c9bad704b69e0.tar forums-40932c26eaa7cddd0731b136a77c9bad704b69e0.tar.gz forums-40932c26eaa7cddd0731b136a77c9bad704b69e0.tar.bz2 forums-40932c26eaa7cddd0731b136a77c9bad704b69e0.tar.xz forums-40932c26eaa7cddd0731b136a77c9bad704b69e0.zip |
Merge pull request #1772 from bantu/feature/plupload/integration
[ticket/10929] Integration of Plupload
Diffstat (limited to 'phpBB/includes/functions_upload.php')
-rw-r--r-- | phpBB/includes/functions_upload.php | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/phpBB/includes/functions_upload.php b/phpBB/includes/functions_upload.php index 4181896eca..04d483e14c 100644 --- a/phpBB/includes/functions_upload.php +++ b/phpBB/includes/functions_upload.php @@ -44,10 +44,16 @@ class filespec var $upload = ''; /** + * The plupload object + * @var \phpbb\plupload\plupload + */ + protected $plupload; + + /** * File Class * @access private */ - function filespec($upload_ary, $upload_namespace) + function filespec($upload_ary, $upload_namespace, \phpbb\plupload\plupload $plupload = null) { if (!isset($upload_ary)) { @@ -80,6 +86,7 @@ class filespec $this->local = (isset($upload_ary['local_mode'])) ? true : false; $this->upload = $upload_namespace; + $this->plupload = $plupload; } /** @@ -161,12 +168,14 @@ class filespec */ function is_uploaded() { - if (!$this->local && !is_uploaded_file($this->filename)) + $is_plupload = $this->plupload && $this->plupload->is_active(); + + if (!$this->local && !$is_plupload && !is_uploaded_file($this->filename)) { return false; } - if ($this->local && !file_exists($this->filename)) + if (($this->local || $is_plupload) && !file_exists($this->filename)) { return false; } @@ -564,16 +573,28 @@ class fileupload * Upload file from users harddisk * * @param string $form_name Form name assigned to the file input field (if it is an array, the key has to be specified) + * @param \phpbb\plupload\plupload $plupload The plupload object + * * @return object $file Object "filespec" is returned, all further operations can be done with this object * @access public */ - function form_upload($form_name) + function form_upload($form_name, \phpbb\plupload\plupload $plupload = null) { global $user, $request; $upload = $request->file($form_name); unset($upload['local_mode']); - $file = new filespec($upload, $this); + + if ($plupload) + { + $result = $plupload->handle_upload($form_name); + if (is_array($result)) + { + $upload = array_merge($upload, $result); + } + } + + $file = new filespec($upload, $this, $plupload); if ($file->init_error) { |