/**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }