Beispiel #1
0
            $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());
}