[ * 'filename' => 'filename.jpg', * 'ext' => 'jpg', * 'path' => '/path/to/filename.jpg', * 'size' => 10240, * 'mime_type' => 'image/jpeg', * ], * 'other' => [...], * ] */ protected function saveFiles(Request $request): array { $files = $request->file(); $driver = Storage::disk('uploads'); $folder = $request->input(static::UPLOAD_FOLDER_FIELD); $folder = static::UPLOAD_FOLDER_PREFIX.($folder ? '/'.trim($folder, '/') : ''); $files = array_map(function (UploadedFile $file) use ($driver, $folder) { $md5 = md5_file($file); $ext = $file->getClientOriginalExtension(); $filename = $md5.($ext ? ".{$ext}" : ''); $path = $driver->putFileAs($folder, $file, $filename); return [ 'filename' => $filename, 'ext' => $ext, 'path' => $path, 'size' => $file->getSize(), 'mime_type' => $file->getMimeType(), ]; }, $files); return $files; } }