all(), ['file' => ['required', 'file', 'mimes:'.implode(',', self::EXTENSIONS), 'max:'.self::MAX_KILOBYTES]], [], ['file' => (string) $request->input('label', 'file')], ); if ($validator->fails()) { return response()->json(['error' => $validator->errors()->first('file')], 422); } $file = $request->file('file'); $path = $file->store(self::DIRECTORY, self::DISK); abort_if($path === false, 500); return response()->json([ 'reference' => Crypt::encryptString(json_encode([ 'disk' => self::DISK, 'path' => $path, 'name' => $file->getClientOriginalName(), 'mime' => $file->getMimeType(), ])), ]); } }