diff --git a/phpBB/phpbb/attachment/upload.php b/phpBB/phpbb/attachment/upload.php index 3a983addc3..8d4b68c7be 100644 --- a/phpBB/phpbb/attachment/upload.php +++ b/phpBB/phpbb/attachment/upload.php @@ -327,10 +327,36 @@ class upload /** * Check if there is enough free space available on disk * - * @return bool True if disk space is available, false if not + * @return bool True if disk space is available or can't get it, false if not */ protected function check_disk_space() { + try + { + $free_space = $this->storage->free_space(); + + if ($free_space <= $this->file->get('filesize')) + { + if ($this->auth->acl_get('a_')) + { + $this->file_data['error'][] = $this->language->lang('ATTACH_DISK_FULL'); + } + else + { + $this->file_data['error'][] = $this->language->lang('ATTACH_QUOTA_REACHED'); + } + $this->file_data['post_attach'] = false; + + $this->file->remove($this->storage); + + return false; + } + } + catch (\phpbb\storage\exception\exception $e) + { + // Nothing + } + return true; }