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;
    }
}