uuid = digibug::uuid(); $proxy->item_id = $item->id; $proxy->save(); $url = url::abs_site("digibug/print_proxy/{$proxy->uuid}"); if (module::get_var("digibug", "mode", "basic")) { $company_id = module::get_var("digibug", "basic_company_id"); $event_id = module::get_var("digibug", "basic_event_id"); } else { $company_id = module::get_var("digibug", "company_id"); $event_id = module::get_var("digibug", "event_id"); } $v = new View("digibug_form.html"); $v->order_parms = array( "digibug_api_version" => "100", "company_id" => $company_id, "event_id" => $event_id, "cmd" => "addimg", "return_url" => url::abs_site("digibug/close_window"), "num_images" => "1", "image_1" => $url, "thumb_1" => "$url/thumb", "image_height_1" => $item->height, "image_width_1" => $item->width, "thumb_height_1" => $item->thumb_height, "thumb_width_1" => $item->thumb_width, "title_1" => $item->title); print $v; } public function print_proxy($id, $thumb=null) { $proxy = ORM::factory("proxy") ->where("uuid", $id) ->find(); if (!$proxy->loaded) { Kohana::show_404(); } if (!$proxy->item->loaded) { Kohana::show_404(); } $file = empty($thumb) ? $proxy->item->file_path() : $proxy->item->thumb_path(); if (!file_exists($file)) { kohana::show_404(); } // We don't need to save the session for this request Session::abort_save(); // Dump out the image header("Content-Type: $proxy->item->mime_type"); Kohana::close_buffers(false); $fd = fopen($file, "rb"); fpassthru($fd); fclose($fd); // If the request was for the image and not the thumb, then delete the proxy. if (empty($thumb)) { $proxy->delete(); } } public function close_window() { print ""; } }