yf_upload_archive class

Archive file uploader.

Fileplugins/common/classes/common/yf_upload_archive.class.php
Use_class('upload_archive', 'classes/common/')

Public properties

A site sets them in its config with $PROJECT_CONF['upload_archive']['NAME'] = ...;

PropertyDefaultDescription
$ALLOWED_MIME_TYPES
array
['application/zip' => 'zip', 'application/x-rar' => 'rar', 'application/x-tar' => 'tar', 'application/x-gzip' => 'gz']

Public methods 1

go

public function go($new_file_path, $name_in_form = 'archive')

Do upload archive to server.

    public function go($new_file_path, $name_in_form = 'archive')
    {
        $is_local = null;
        ignore_user_abort(true);
        if (empty($new_file_path)) {
            trigger_error(__CLASS__ . ': New file path id required', E_USER_WARNING);
            return false;
        }
        if (empty($name_in_form)) {
            $name_in_form = 'archive';
        }
        $ARCHIVE = is_array($name_in_form) ? $name_in_form : ($_FILES[$name_in_form] ?? null);
        if ($ARCHIVE['type'] && ! isset($this->ALLOWED_MIME_TYPES[$ARCHIVE['type']])) {
            _re('Invalid file mime type');
        }
        if (common()->_error_exists()) {
            return false;
        }
        $ARCHIVE_DIR = dirname($new_file_path);
        if ( ! file_exists($ARCHIVE_DIR)) {
            mkdir($ARCHIVE_DIR, 0777, true);
        }
        $ARCHIVE_PATH = $new_file_path;
        $move_result = move_uploaded_file($ARCHIVE['tmp_name'], $ARCHIVE_PATH);
        if ( ! $move_result || ! file_exists($ARCHIVE_PATH) || ! filesize($ARCHIVE_PATH) || ! is_readable($ARCHIVE_PATH)) {
            trigger_error('Moving uploaded archive error', E_USER_WARNING);
            return false;
        }
        return true;
    }