file = $file; } /** * Uploads any file * * @return \Illuminate\Http\RedirectResponse */ public function postFile(Request $request) { try { $uploadedFiles = []; $files = $request->all()['files']; $successfullUploads = 0; foreach ($files as $file) { $uploadedFile = $this->file->upload($file, $request); $successfullUploads++; $uploadedFiles[] = $uploadedFile; } // we do not want to redirect if ($request->ajax()) { return $this->jsonResponse($uploadedFiles); } // upload was not performed via ajax, redirect user return redirect() ->route('upload.overview', ['directory' => $request->directoryId]) ->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads)); } catch (FileException $e) { return $this->invalidUpload('invalidFile'); } } protected function invalidUpload($message) { return redirect() ->route('upload.overview') ->with('error', trans('admin/fileManager.' . $message)); } /** * Send response about uploaded file as JSON * * @param $uploadedFile * * @return \Illuminate\Http\JsonResponse */ private function jsonResponse($uploadedFile) { $filename = $uploadedFile['file']->getFilename(); $url = config('app.upload_path') . DIRECTORY_SEPARATOR . $filename; $data = [ 'filename' => $filename, 'url' => $url, 'id' => $uploadedFile['id'] ]; return response()->json($data); } }