/**
  * 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);
 }
Beispiel #3
0
 /**
  * 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();
 }