request->param('file'); // Find the file extension $ext = pathinfo($file,PATHINFO_EXTENSION); // Remove the extension from the filename $file = substr($file,0,-(strlen($ext)+1)); $f = ''; // If our file is pathed with session, our file is in our session. if ($fd = Session::instance()->get_once($this->request->param('file'))) { $this->response->body($fd); // If not found try a default media file } elseif ($f = Kohana::find_file('media',$file,$ext)) { // Send the file content as the response $this->response->body(file_get_contents($f)); } else { // Return a 404 status $this->response->status(404); } // Generate and check the ETag for this file if (Kohana::$environment < Kohana::TESTING OR Kohana::$config->load('debug')->etag) $this->check_cache(sha1($this->response->body())); // Set the proper headers to allow caching $this->response->headers('Content-Type',File::mime_by_ext($ext)); $this->response->headers('Content-Length',(string)$this->response->content_length()); $this->response->headers('Last-Modified',date('r',$f ? filemtime($f) : time())); } } ?>