Source
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
class CUploadFile {
protected $name;
protected $type;
protected $tmp_name;
protected $error;
protected $size;
/**
* Get upload_max_filesize value in bytes defined in php.ini.
* If value is not defined in php.ini, returns default 2M.
*
* @return int
*/
static public function getMaxUploadSize() {
$maxSize = trim(ini_get('upload_max_filesize'));
if ($maxSize === '') {
$maxSize = '2M'; // PHP default value
}
return str2mem($maxSize);
}
/**
* Accepts file array from $_FILES global variable.
*
* @throws Exception if file_uploads are disabled
*
* @param $file
*/
public function __construct($file) {
if (!ini_get('file_uploads')) {
throw new Exception(_('Unable to upload file because "file_uploads" is disabled.'));
}
$this->name = $file['name'];
$this->type = $file['type'];
$this->tmp_name = $file['tmp_name'];
$this->error = $file['error'];
$this->size = $file['size'];
}
/**
* Get content of uploaded file.
*
* @throws Exception