/** * Uploads a single file. * * @param Request $request * @param Board $board * @return json */ public function putFile(Request $request, Board $board) { $input = Input::all(); $rules = []; PostRequest::rulesForFiles($board, $rules); $rules['files'][] = "required"; $validator = Validator::make($input, $rules); if (!$validator->passes()) { return json_encode(['errors' => $validator->errors()]); } $storage = new Collection(); foreach ($input['files'] as $file) { $newStorage = FileStorage::storeUpload($file); $storage[$newStorage->hash] = $newStorage; } return $storage; }
/** * Uploads a single file. * * @param Request $request * @param Board $board * @return json */ public function putFile(Request $request, Board $board) { $input = Input::all(); $rules = []; PostRequest::rulesForFiles($board, $rules); $rules['files'][] = "required"; $validator = Validator::make($input, $rules); if (!$validator->passes()) { return json_encode(['errors' => $validator->errors()]); } $storage = new Collection(); foreach ($input['files'] as $file) { $ip = new IP($request->ip()); $uploadSize = (int) Cache::get("upstream_data_for_" . $ip->toLong(), 0); if ($uploadSize <= 52430000) { Cache::increment("upstream_data_for_" . $ip->toLong(), $file->getSize(), 2); $newStorage = FileStorage::storeUpload($file); $storage[$newStorage->hash] = $newStorage; Cache::decrement("upstream_data_for_" . $ip->toLong(), $file->getSize()); } else { return abort(429); } } return $storage; }