/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $folder = Folder::findOrFail($id); $old_path = public_path('documents/' . $folder->user()->first()->slug . '/' . current_folder_path(Folder::find($folder->parent_folder_id)) . $folder->slug); $folder->name = $request->folder_name; $folder->slug = '@' . str_slug($request->folder_name); try { $folder->save(); $new_path = 'documents/' . $folder->user()->first()->slug . '/' . current_folder_path(Folder::find($folder->parent_folder_id)) . $folder->slug; \File::move($old_path, public_path($new_path)); $collection = $folder->files()->get(); $collection = $collection->each(function ($file, $key) use($new_path) { $file->path = $new_path . '/' . $file->name_on_disk; $file->save(); }); } catch (\Exception $e) { return response()->json(['message' => 'Folder was not updated', 'description' => $e->getMessage()], 403); } return response()->json(['message' => 'Folder updated correctly', 'description' => 'Folder updated correctly'], 201); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $file = $request->file('file'); $folder = Folder::findOrFail($request->current_folder); $file_original_name = str_slug(pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME)); $extension = $file->getClientOriginalExtension(); $file_path = 'documents/' . $request->user()->slug . '/' . current_folder_path($folder); $file_name_on_disk = $file_original_name . str_random(20) . '.' . $extension; $file_name = $file_original_name . '.' . $extension; $file_slug = '@' . $file_name; $complete_path = $file_path . $file_name_on_disk; if (\File::exists($complete_path)) { abort(403, "A file with this name already exists within this folder."); } $file->move($file_path, $file_name_on_disk); try { $request->user()->files()->create(['folder_id' => $folder->id, 'path' => $complete_path, 'name' => $file_name, 'name_on_disk' => $file_name_on_disk, 'slug' => $file_slug]); } catch (\Exception $e) { return response()->json(['message' => 'File was not created', 'description' => $e->getMessage()], 403); } return response()->json(['message' => 'File created correctly', 'description' => 'A file was uploaded and stored correctly at ' . $complete_path], 201); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function deleteFolder($id) { // $currentFolder = Folder::findOrFail($id); //$filesFolder = $currentFolder->files; $files = $currentFolder->files(); foreach ($files as $file) { unlink(public_path($file->file_path)); } $files->delete(); $currentFolder->delete(); //rmdir('folders/'.$currentFolder->created_by.'/'.$currentFolder->id); return redirect()->back(); }