Reputation: 1
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