validate([ 'type' => ['required', Rule::in(['prefix', 'postfix'])], 'files' => ['required', 'array'], 'files.*' => ['required', 'file', 'max:10240', 'extensions:pro'], ]); $type = $request->input('type'); $created = []; foreach ($request->file('files') as $file) { $storedPath = $file->store('export-pro-files/'.$type, 'local'); $maxOrder = ExportProFile::where('type', $type)->max('order') ?? 0; $record = ExportProFile::create([ 'type' => $type, 'original_name' => $file->getClientOriginalName(), 'stored_path' => $storedPath, 'order' => $maxOrder + 1, ]); $created[] = [ 'id' => $record->id, 'original_name' => $record->original_name, 'order' => $record->order, ]; } return response()->json([ 'files' => $created, 'message' => count($created).' Datei(en) erfolgreich hochgeladen.', ], 201); } public function destroy(ExportProFile $exportProFile): JsonResponse { Storage::disk('local')->delete($exportProFile->stored_path); $exportProFile->delete(); return response()->json([ 'message' => 'Datei erfolgreich gelöscht.', ]); } }