/** * Does a document checkin. * * @param string $session_id * @param int $document_id * @param string $filename * @param string $reason * @param string $base64 * @param boolean $major_update * @return kt_document_detail. status_code can be KTWS_ERR_INVALID_SESSION, KTWS_ERR_INVALID_DOCUMENT, KTWS_ERR_INVALID_DOCUMENT or KTWS_SUCCESS */ function checkin_small_document($session_id, $document_id, $filename, $reason, $base64, $major_update) { $this->debug("checkin_small_document('{$session_id}',{$document_id},'{$filename}','{$reason}','*** base64 content ***',{$major_update})"); $kt =& $this->get_ktapi($session_id); if (is_array($kt)) { return new SOAP_Value('return', "{urn:{$this->namespace}}kt_document_detail", $kt); } $response = KTWebService::_status(KTWS_ERR_INVALID_DOCUMENT); $upload_manager = new KTUploadManager(); $tempfilename = $upload_manager->store_base64_file($base64, 'su_'); if (PEAR::isError($tempfilename)) { $reason = $tempfilename->getMessage(); $response = KTWebService::_status(KTWS_ERR_INVALID_DOCUMENT, 'Cannot write to temp file: ' . $tempfilename . ". Reason: {$reason}"); $this->debug("checkin_small_document - cannot write {$tempfilename}. Reason: {$reason}", $session_id); return new SOAP_Value('return', "{urn:{$this->namespace}}kt_document_detail", $response); } // simulate the upload $tempfilename = $upload_manager->uploaded($filename, $tempfilename, 'C'); $document =& $kt->get_document_by_id($document_id); if (PEAR::isError($document)) { $response['message'] = $document->getMessage(); $this->debug("checkin_small_document - cannot get documentid {$document_id} - " . $document->getMessage(), $session_id); return new SOAP_Value('return', "{urn:{$this->namespace}}kt_document_detail", $response); } $result = $document->checkin($filename, $reason, $tempfilename, $major_update); if (PEAR::isError($result)) { $response['message'] = $result->getMessage(); $this->debug("checkin_small_document - cannot checkin document - " . $result->getMessage(), $session_id); return new SOAP_Value('return', "{urn:{$this->namespace}}kt_document_detail", $response); } // get status after checkin return $this->get_document_detail($session_id, $document_id); }
$session = $ktapi->get_active_session($session_id, null, $apptype); if (PEAR::isError($session)) { respond(4, $session->getMessage()); } $upload_manager = new KTUploadManager(); $upload_manager->cleanup(); $upload_manager->set_session($session); $failed = 0; $added = array(); $lastMessage = ''; foreach ($_FILES as $key => $file) { $filename = $file['name']; $tempfile = $file['tmp_name']; $error = $file['error']; if ($error == UPLOAD_ERR_OK) { $result = $upload_manager->uploaded($filename, $tempfile, $action); if (PEAR::isError($result)) { $lastMessage = $result->getMessage(); $default->log->error("Cannot upload file '{$filename}'. Temp location: '{$tempfile}'. " . $lastMessage); $failed++; continue; } if ($result !== false) { $file['tmp_name'] = $result; $added[$key] = $file; } else { $failed++; } } } if ($failed) {
/** * Does a document checkin. * * @author KnowledgeTree Team * @access public * @param int $document_id * @param string $filename * @param string $reason * @param string $base64 * @param boolean $major_update * @return kt_document_detail. */ public function checkin_small_document($document_id, $filename, $reason, $base64, $major_update, $sig_username = '', $sig_password = '') { $response = $this->_check_electronic_signature($document_id, $sig_username, $sig_password, $reason, $reason, 'ktcore.transactions.check_in'); if ($response['status_code'] == 1) { return $response; } $upload_manager = new KTUploadManager(); $tempfilename = $upload_manager->store_base64_file($base64, 'su_'); if (PEAR::isError($tempfilename)) { $reason = $tempfilename->getMessage(); $response['status_code'] = 1; $response['message'] = 'Cannot write to temp file: ' . $tempfilename . ". Reason: {$reason}"; return $response; } // simulate the upload $tempfilename = $upload_manager->uploaded($filename, $tempfilename, 'C'); $document =& $this->get_document_by_id($document_id); if (PEAR::isError($document)) { $response['status_code'] = 1; $response['message'] = $document->getMessage(); return $response; } $result = $document->checkin($filename, $reason, $tempfilename, $major_update); if (PEAR::isError($result)) { $response['status_code'] = 1; $response['message'] = $result->getMessage(); return $response; } // get status after checkin return $this->get_document_detail($document_id); }