public function __construct() { $CI =& get_instance(); $CI->load->helper("filebin"); /* Clients using API keys do not need a persistent session since API keys * should be sent with each request. This reduces database queries and * prevents us from sending useless cookies. */ if (!stateful_client()) { $this->memory_only = true; $CI->config->set_item("sess_use_database", false); } parent::__construct(); }
/** * Handles uploaded files * @Deprecated only used by the cli client */ function do_upload() { // stateful clients get a cookie to claim the ID later // don't force them to log in just yet if (!stateful_client()) { $this->muser->require_access("basic"); } $ids = array(); $extension = $this->input->post('extension'); $multipaste = $this->input->post('multipaste'); $files = getNormalizedFILES(); service\files::verify_uploaded_files($files); $limits = $this->muser->get_upload_id_limits(); foreach ($files as $key => $file) { $id = $this->mfile->new_id($limits[0], $limits[1]); // work around a curl bug and allow the client to send the real filename base64 encoded // TODO: this interface currently sets the same filename for every file if you use multiupload $filename = $this->input->post("filename"); if ($filename !== false) { $filename = base64_decode($filename, true); } // fall back if base64_decode failed if ($filename === false) { $filename = $file['name']; } $filename = trim($filename, "\r\n\t\v"); service\files::add_uploaded_file($id, $file["tmp_name"], $filename); $ids[] = $id; } if ($multipaste !== false) { $userid = $this->muser->get_userid(); $ids[] = \service\files::create_multipaste($ids, $userid, $limits)["url_id"]; } $this->_show_url($ids, $extension); }