middleware('can:content-import'); } public function start(Request $request) { // TODO - Show existing imports for user (or for all users if admin-level user) return view('exports.import', [ 'zipErrors' => session()->pull('validation_errors') ?? [], ]); } public function upload(Request $request) { $this->validate($request, [ 'file' => ['required', 'file'] ]); $file = $request->file('file'); $zipPath = $file->getRealPath(); $errors = (new ZipExportValidator($zipPath))->validate(); if ($errors) { session()->flash('validation_errors', $errors); return redirect('/import'); } dd('passed'); // TODO - Upload to storage // TODO - Store info/results for display: // - zip_path // - name (From name of thing being imported) // - size // - book_count // - chapter_count // - page_count // - created_by // - created_at/updated_at // TODO - Send user to next import stage } }