File "class-file-upload-upgrader.php"
Full path: /home/kosmetik/public_html/wp-includes/wp-admin/includes/class-file-upload-upgrader.php
File
size: 2.09 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
class File_Upload_Upgrader
{
public $package;
public $filename;
public $id = 0;
public function __construct($form, $urlholder)
{
if (empty($_FILES[$form]['name']) && empty($_GET[$urlholder])) {
wp_die(__('Please select a file'));
}
if (!empty($_FILES)) {
$overrides = array('test_form' => false, 'test_type' => false);
$file = wp_handle_upload($_FILES[$form], $overrides);
if (isset($file['error'])) {
wp_die($file['error']);
}
$this->filename = $_FILES[$form]['name'];
$this->package = $file['file'];
$object = array('post_title' => $this->filename, 'post_content' => $file['url'], 'post_mime_type' => $file['type'], 'guid' => $file['url'], 'context' => 'upgrader', 'post_status' => 'private');
$this->id = wp_insert_attachment($object, $file['file']);
wp_schedule_single_event(time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array($this->id));
} elseif (is_numeric($_GET[$urlholder])) {
$this->id = (int) $_GET[$urlholder];
$attachment = get_post($this->id);
if (empty($attachment)) {
wp_die(__('Please select a file'));
}
$this->filename = $attachment->post_title;
$this->package = get_attached_file($attachment->ID);
} else {
$uploads = wp_upload_dir();
if (!($uploads && false === $uploads['error'])) {
wp_die($uploads['error']);
}
$this->filename = sanitize_file_name($_GET[$urlholder]);
$this->package = $uploads['basedir'] . '/' . $this->filename;
if (0 !== strpos(realpath($this->package), realpath($uploads['basedir']))) {
wp_die(__('Please select a file'));
}
}
}
public function cleanup()
{
if ($this->id) {
wp_delete_attachment($this->id);
} elseif (file_exists($this->package)) {
return @unlink($this->package);
}
return true;
}
}