public function save($file)
 {
     // Check there is an uploaded file
     if (empty($file['tmp_name']) or !is_uploaded_file($file['tmp_name'])) {
         return FALSE;
     }
     $dir = stash::get_directory();
     $token = stash::create_token();
     // Stash file
     move_uploaded_file($file['tmp_name'], $dir . $token . '_file');
     // Stash meta data
     unset($file['tmp_name']);
     $meta = json_encode($file);
     file_put_contents($dir . $token . '_meta', $meta);
     if (mt_rand(1, 100) <= Kohana::config('stash.gc_probability')) {
         stash::garbage_collect();
     }
     return $token;
 }