user22859100
user22859100

Reputation: 1

Trouble with File upload using service provider,controller and filesystem using user/workorder directory folder in laravel 11

I can create user folder on registration for each user and sub-folder for each work-order on order submit. Having trouble uploading files to path of work-order folder for files.

Here is my store controller

public function store(StoreworkorderRequest $request)     {         $workOrder = WorkOrder::create(['user_id'=>auth()->id()] + $request->all());                $directory = app('fileStorage')->WorkOrderFileUploadDirectory($workOrder->user_id, $workOrder->id);      //Handle file uploads here     if ($request->hasFile('files')) {         foreach ($request->file('files') as $file) {             $file->store( $directory);         }     }      return redirect()->route('workorders.index')->with('success', 'Work order created successfully.');     }

Here is my store ServiceProvider

public function register(): void
    {
        $this->app->bind('fileStorage', function ($app) {
            return new class {
                public function createUserDirectory($userId)
                {
                    Storage::disk('private2')->makeDirectory($userId);
                }

                public function WorkOrderFileUploadDirectory($userId, $workOrderId)
                {
                    // Define the directory path based on user ID and work order ID
                    $directory = 'uploads/' . $userId . '/' . $workOrderId;
                    Storage::disk('private2')->makeDirectory($directory);
                    return $directory;
                }           

            } ; 
    });
    }

my create view

<!--fileupload-->
       <div>
        <input type="file" name="files[]" id="files" multiple>
       </div>

              <div class="mb-3">
                           <button type="submit" class="btn btn-success">Submit</button>
                </div>
            </form>

Tried changing path and can upload files to a actual folder, but when I use $directory = app('fileStorage')->WorkOrderFileUploadDirectory($workOrder->user_id, $workOrder->id); it doesn't upload the files to the submitted workorder folder. Just creates new workorder folder.

Upvotes: 0

Views: 21

Answers (0)

Related Questions