item = $item; print $v; } public function start() { batch::start(); } public function add_photo($id) { $album = ORM::factory("item", $id); access::required("add", $album); access::verify_csrf(); $file_validation = new Validation($_FILES); $file_validation->add_rules("Filedata", "upload::valid", "upload::type[gif,jpg,png,flv,mp4]"); if ($file_validation->validate()) { // SimpleUploader.swf does not yet call /start directly, so simulate it here for now. if (!batch::in_progress()) { batch::start(); } $temp_filename = upload::save("Filedata"); try { $name = substr(basename($temp_filename), 10); // Skip unique identifier Kohana adds $title = $this->convert_filename_to_title($name); $path_info = pathinfo($temp_filename); if (array_key_exists("extension", $path_info) && in_array(strtolower($path_info["extension"]), array("flv", "mp4"))) { $movie = movie::create($album, $temp_filename, $name, $title); log::success("content", t("Added a movie"), html::anchor("movies/$movie->id", t("view movie"))); } else { $photo = photo::create($album, $temp_filename, $name, $title); log::success("content", t("Added a photo"), html::anchor("photos/$photo->id", t("view photo"))); } } catch (Exception $e) { unlink($temp_filename); throw $e; } unlink($temp_filename); } print "File Received"; } /** * We should move this into a helper somewhere.. but where is appropriate? */ private function convert_filename_to_title($filename) { $title = strtr($filename, "_", " "); $title = preg_replace("/\..*?$/", "", $title); $title = preg_replace("/ +/", " ", $title); return $title; } public function finish() { batch::stop(); print json_encode(array("result" => "success")); } }