public function store() { if (Request::hasFile('entry') !== true) { abort(422); } $user = Auth::user(); $contest = Contest::findOrFail(Request::input('contest_id')); priv_check('ContestEntryStore', $contest)->ensureCan(); $allowedExtensions = []; $maxFilesize = 0; switch ($contest->type) { case 'art': $allowedExtensions[] = 'jpg'; $allowedExtensions[] = 'jpeg'; $allowedExtensions[] = 'png'; $maxFilesize = 4000000; break; case 'beatmap': $allowedExtensions[] = 'osu'; $maxFilesize = 1000000; break; case 'music': $allowedExtensions[] = 'mp3'; $maxFilesize = 15000000; break; } if (!in_array(strtolower(Request::file('entry')->getClientOriginalExtension()), $allowedExtensions, true)) { abort(422); } if (Request::file('entry')->getClientSize() > $maxFilesize) { abort(413); } UserContestEntry::upload(Request::file('entry'), $user, $contest); return $contest->userEntries($user); }