function get_templates($r) { xml_start_tag("get_templates"); $app_name = (string) $r->app_name; if ($app_name) { $app = get_submit_app($app_name); } else { $job_name = (string) $r->job_name; $wu = get_wu($job_name); $app = BoincApp::lookup_id($wu->appid); } list($user, $user_submit) = authenticate_user($r, $app); $in = file_get_contents(project_dir() . "/templates/" . $app->name . "_in"); $out = file_get_contents(project_dir() . "/templates/" . $app->name . "_out"); if ($in === false || $out === false) { xml_error(-1, "template file missing"); } echo "<templates>\n{$in}\n{$out}\n</templates>\n </get_templates>\n "; }
function upload_files($r) { xml_start_tag("upload_files"); list($user, $user_submit) = authenticate_user($r, null); $fanout = parse_config(get_config(), "<uldl_dir_fanout>"); $delete_time = (int) $r->delete_time; $batch_id = (int) $r->batch_id; //print_r($_FILES); $i = 0; foreach ($r->md5 as $f) { $md5 = (string) $f; $name = "file_{$i}"; $tmp_name = $_FILES[$name]['tmp_name']; if (!is_uploaded_file($tmp_name)) { xml_error(-1, "{$tmp_name} is not an uploaded file"); } $fname = job_file_name($md5); $path = dir_hier_path($fname, project_dir() . "/download", $fanout); rename($tmp_name, $path); $now = time(); $jf_id = BoincJobFile::insert("(md5, create_time, delete_time) values ('{$md5}', {$now}, {$delete_time})"); if (!$jf_id) { xml_error(-1, "upload_files(): BoincJobFile::insert({$md5}) failed: " . BoincDb::error()); } if ($batch_id) { BoincBatchFileAssoc::insert("(batch_id, job_file_id) values ({$batch_id}, {$jf_id})"); } $i++; } echo "<success/>\n </upload_files>\n "; }