yf_upload_archive classArchive file uploader.
| File | plugins/common/classes/common/yf_upload_archive.class.php |
|---|---|
| Use | _class('upload_archive', 'classes/common/') |
A site sets them in its config with $PROJECT_CONF['upload_archive']['NAME'] = ...;
| Property | Default | Description |
|---|---|---|
$ALLOWED_MIME_TYPESarray |
['application/zip' => 'zip', 'application/x-rar' => 'rar', 'application/x-tar' => 'tar', 'application/x-gzip' => 'gz'] |
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;
}