/** * 處理狀態 * @param {Int} $bitstream_id */ public function status($bitstream_id) { $bitstream = new Bitstream($bitstream_id); $status = "wait"; if ($bitstream->is_deleted()) { $status = "deleted"; } else { if ($bitstream->is_convert_completed()) { $converted_bitstream = $bitstream->get_converted_bitstream(); $status = $converted_bitstream->get_id(); } } $this->load->view("component/json", array("message" => $status)); }
/** * 開始進行轉換 * @param Bitstream $bitstream */ public function convert_start($bitstream) { //$this->puli_log->create_log($bitstream, 'convert_start'); // 開始進行轉換的手續 $params["PATH"] = $bitstream->get_path(); $params["DIR"] = $bitstream->get_dir(); $params["FULLNAME"] = $bitstream->get_fullname(); $params["EXT_NAME"] = $bitstream->get_ext_name(); $params["FILE_NAME"] = $bitstream->get_file_name(); $params["OUTPUT_DIR"] = $this->get_completed_dir(); $params["ORI_NAME"] = $bitstream->get_original_file_name(); $converter = $this->CI->config->item("converter"); $converter_name = $converter["name"]; $output_path = $converter["output_path"]; $output_path = $this->_format_path($output_path, $params); $output_name = $converter["output_name"]; $output_name = $this->_format_path($output_name, $params); $output_mime = $converter["mime"]; if (is_null($output_mime)) { $output_mime = $bitstream->get_mime(); } $scrtips = $converter["script"]; if (isset($converter["params"])) { $params["PARAMS"] = $converter["params"]; $params["BITSTREAM_PARAMS"] = $bitstream->get_parameters(); } chdir($bitstream->get_dir()); foreach ($scrtips as $step) { // 取代$step的資料 $step = $this->_format_path($step, $params); //exec($step, $output); //echo system($step, $output); //passthru($step); //$output = array(); exec($step); echo " - " . $step . "<br />"; /* if (is_array($output)) { foreach ($output AS $o) { echo $o."<br />"; } } echo " - " .$step."<br />"; */ } //return; //轉換完成,取得資料 //echo $output_path; //return false; if (is_file($output_path)) { if ($bitstream->is_convert_completed()) { return true; } $converted_bitstream = new Bitstream(); $internal_name = substr($output_path, strrpos($output_path, DIRECTORY_SEPARATOR) + 1); $converted_bitstream->set_field("original_name", $output_name); $converted_bitstream->set_field("internal_name", $internal_name); $converted_bitstream->set_field("type", $converter_name); $converted_bitstream->set_field("original_id", $bitstream->get_id()); $converted_bitstream->set_field("mime", $output_mime); $converted_bitstream->save(); $bitstream->delete_file(); $this->puli_log->create_log($converted_bitstream, $converter_name . "_completed"); } else { $this->puli_log->create_log($bitstream, $converter_name . "_error"); return false; } return true; }