Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
ensureAccess($request, $caseRecord); $data = $request->validate([ 'documents' => ['required', 'array', 'max:10'], 'documents.*' => ['file', 'max:15360', 'mimes:pdf,jpg,jpeg,png,webp,doc,docx,txt,csv'], 'category' => ['required', 'string', 'max:60'], ]); foreach ($data['documents'] as $file) { $path = $file->store("cases/{$caseRecord->id}", 'local'); $absolutePath = Storage::disk('local')->path($path); $caseRecord->documents()->create([ 'uploaded_by' => $request->user()->id, 'original_name' => $file->getClientOriginalName(), 'path' => $path, 'disk' => 'local', 'mime_type' => $file->getMimeType(), 'size' => $file->getSize(), 'category' => $data['category'], 'extracted_text' => $extractor->extract($absolutePath, $file->getMimeType()), ]); } return back()->with('success', count($data['documents']).' document(s) uploaded securely.'); } public function download(Request $request, CaseDocument $document) { $this->ensureAccess($request, $document->caseRecord); return Storage::disk($document->disk)->download($document->path, $document->original_name); } public function destroy(Request $request, CaseDocument $document) { $this->ensureAccess($request, $document->caseRecord); Storage::disk($document->disk)->delete($document->path); $document->delete(); return back()->with('success', 'Document removed.'); } private function ensureAccess(Request $request, CaseRecord $caseRecord): void { abort_unless($request->user()->isAdmin() || $caseRecord->user_id === $request->user()->id, 403); } }