validate([ 'file' => 'required|file', 'file_uuid' => 'required|string|max:128', 'current_chunk' => 'required|integer|min:0', 'total_chunks' => 'required|integer|min:1', 'filename' => 'required|string|max:255', ]); $type = $section; $fileUuid = $request->input('file_uuid'); $currentChunk = (int) $request->input('current_chunk'); $totalChunks = (int) $request->input('total_chunks'); $filename = $request->input('filename'); $data = $this->fs->uploadChunk( $request->file('file'), $fileUuid, $currentChunk, $totalChunks, $filename, $type ); if( !isset( $data['file'] ) || $data['file'] === false ){ $data['finished'] = false; return response()->json($data); } \Cache::put("uploaded_file_{$fileUuid}", [ 'uuid' => $fileUuid, 'type' => $type, 'filename' => $filename, 'filepath' => $data['file_path'], 'filesize' => $data['file']['size'], 'favorite_server' => $data['favorite_server'], 'favorite_at' => time(), 'state' => 'public' ], now()->addHours(2) ); $data['finished'] = true; return response()->json($data); } public function download(Request $request, int $entry_id, EntryFile $file ) { if( $file->entry_id != $entry_id ) { abort(404); } // TODO: DL Count. return redirect( $this->fs->getDownloadFileUrl( $file) ); } }