File Processing Trait

The FileProcessingTrait in the LaraUtilX package provides functionality for handling file operations such as uploading, downloading, and deleting files using Laravel's Storage facade.

Methods

  1. getFile(string $filename, string $directory = 'uploads'): string: Retrieves file contents.
  2. uploadFile(UploadedFile $file, string $directory = 'uploads'): string: Uploads a single file.
  3. uploadFiles(array $files, string $directory = 'uploads'): array: Uploads multiple files.
  4. deleteFile(string $filename, string $directory = 'uploads'): Deletes a single file.
  5. deleteFiles(array $filenames, string $directory = 'uploads'): Deletes multiple files.

Usage

  1. Get File Contents:

    use omarchouman\LaraUtilX\Traits\FileProcessingTrait;
    
    class MyController extends Controller
    {
       use FileProcessingTrait;
    
       public function getFileContents(string $filename)
       {
           return $this->getFile($filename);
       }
    }
  2. Upload File:

    use omarchouman\LaraUtilX\Traits\FileProcessingTrait;
    
    class MyController extends Controller
    {
       use FileProcessingTrait;
    
       public function uploadSingleFile(Request $request)
       {
           $file = $request->file('file');
    
           return $this->uploadFile($file);
       }
    }
  3. Upload Multiple Files:

    use omarchouman\LaraUtilX\Traits\FileProcessingTrait;
    
    class MyController extends Controller
    {
       use FileProcessingTrait;
    
       public function uploadMultipleFiles(Request $request)
       {
           $files = $request->file('files');
    
           return $this->uploadFiles($files);
       }
    }
  4. Delete File:

    use omarchouman\LaraUtilX\Traits\FileProcessingTrait;
    
    class MyController extends Controller
    {
       use FileProcessingTrait;
    
       public function deleteSingleFile(string $filename)
       {
           $this->deleteFile($filename);
       }
    }
  5. Delete Multiple Files:

    use omarchouman\LaraUtilX\Traits\FileProcessingTrait;
    
    class MyController extends Controller
    {
       use FileProcessingTrait;
    
       public function deleteMultipleFiles(array $filenames)
       {
           $this->deleteFiles($filenames);
       }
    }

Result

The trait provides convenient methods for performing file operations, simplifying file management tasks in Laravel applications.

  • Success Response: File operations such as uploading, downloading, and deleting are executed successfully, and appropriate responses or actions are taken based on the operation.
  • Error Response: If an error occurs during file operations (e.g., file not found, permission denied), appropriate error handling mechanisms should be implemented based on application requirements.

Publish

You can publish this trait through the below command

php artisan vendor:publish --tag=lara-util-x-file-processing-trait



This trait streamlines file handling in Laravel applications, enhancing productivity and maintainability.