$AppUI->redirect($redirect); } } } // move the file on filesystem if the affiliated project was changed if ($file_id && $obj->file_project != $oldObj->file_project) { $res = $obj->moveFile($oldObj->file_project, $oldObj->file_real_filename); if (!$res) { $AppUI->setMsg('File could not be moved', UI_MSG_ERROR); $AppUI->redirect($redirect); } } if (!$file_id) { $obj->file_owner = $AppUI->user_id; if (!$obj->file_version_id) { $obj->file_version_id = getNextVersionID(); } else { $q = new DBQuery(); $q->addTable('files'); $q->addUpdate('file_checkout', ''); $q->addWhere('file_version_id = ' . $obj->file_version_id); $q->exec(); $q->clear(); } } //print_r($obj);die; if ($msg = $obj->store()) { $AppUI->setMsg($msg, UI_MSG_ERROR); } else { // Notification $obj->load($obj->file_id);
function set_file_attachment($session, $file) { global $db; require_once 'soap/config_upload.php'; // require_once ('base.php'); $error = new SoapError(); if (!validate_authenticated($session)) { $error->set_error('invalid_login'); return array('id' => -1, 'error' => $error->get_soap_array()); } $AppUI =& $_SESSION['AppUI']; $GLOBALS['AppUI'] = $AppUI; $module_name = 'files'; $perms =& $AppUI->acl(); $canAccess = $perms->checkModule($module_name, 'access'); $canAuthor = $perms->checkModule($module_name, 'add'); $GLOBALS['perms'] = $perms; if (!$canAccess || !$canAuthor) { $error->set_error('no_access'); return array('id' => -1, 'error' => $error->get_soap_array()); } $modclass = $AppUI->getModuleClass($module_name); if (file_exists($modclass)) { include_once $modclass; } else { $error->set_error('no_module'); return array('id' => -1, 'error' => $error->get_soap_array()); } $module_name = 'tasks'; $modclass = $AppUI->getModuleClass($module_name); if (file_exists($modclass)) { include_once $modclass; } else { $error->set_error('no_module'); return array('id' => -1, 'error' => $error->get_soap_array()); } $focus = new CFile(); $task = new CTask(); $task->load($file['task_id']); /// $error->description.=$file['location']; //$file['location'] = base64_decode($file['location']); //$file['filename'] = base64_decode($file['filename']); /*if (filesize($file['location'] > $config_upload['upload_maxsize']){ $error->set_error('no_file'); return array('id'=>-1, 'error'=>$error->get_soap_array()); }*/ $file_real_filename = uniqid(rand()); $new_location = DP_BASE_DIR . '/files/' . $task->task_project . '/' . $file_real_filename; /// $error->description.=$new_location; if (!is_dir(DP_BASE_DIR . '/files/' . $task->task_project)) { mkdir(DP_BASE_DIR . '/files/' . $task->task_project); } copy($file['location'], $new_location); if (file_exists($new_location)) { // return array('id'=>$new_location, 'error'=>$error->get_soap_array()); if (!empty($file['filename'])) { $upload_filename = $file['filename']; $ext_pos = strrpos($upload_filename, "."); $file_ext = substr($upload_filename, $ext_pos + 1); // $error->description.="file_ext: ".$file_ext; // return array('id'=>-1, 'error'=>$error->get_soap_array()); /* if (in_array($file_ext, $config_upload['upload_badext'])) { $upload_filename .= ".txt"; $file_ext = "txt"; }*/ $focus->file_name = $upload_filename; $focus->file_owner = $AppUI->user_id; // $error->description.="file_owner_id: ".$AppUI->user_id; $focus->file_real_filename = $file_real_filename; $focus->file_project = $task->task_project; $focus->file_date = str_replace("'", '', $db->DBTimeStamp(time())); // $error->description.="file_task_id: ".$task->task_id; $focus->file_task = $task->task_id; $focus->file_folder = 0; $focus->file_size = filesize($new_location); $focus->file_parent = 0; $focus->file_folder = 0; $focus->file_version = 1; $focus->file_version_id = getNextVersionID(); $focus->file_category = 1; $focus->file_type = ext2mime($file_ext); $focus->store(); // $error->description.="file_file: ".$focus->file_type; } else { $error->set_error('no_file'); return array('id' => -1, 'error' => $error->get_soap_array()); } } else { $error->set_error('no_file'); return array('id' => -1, 'error' => $error->get_soap_array()); } return array('id' => $focus->file_id, 'error' => $error->get_soap_array()); }