2017 © Pedro Peláez
 

library uploader

Smart uploader for files for Laravel

image

shoperti/uploader

Smart uploader for files for Laravel

  • Wednesday, May 9, 2018
  • by joecohens
  • Repository
  • 5 Watchers
  • 2 Stars
  • 4,012 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 5 Versions
  • 8 % Grown

The README.md

Shoperti Uploader

CircleCI, (*1)

A file uploader for Laravel with support for preprocessing images (resize and auto orientation) using League/Glide., (*2)

Note: For auto orientation you must have a PHP installation that supports reading exif., (*3)

Installation

Add to composer, (*4)

    "require": {
        "shoperti/uploader": "~5.8"
    },

Register the package in one of your providers, (*5)

    public function register()
    {
        $this->app->register(\Shoperti\Uploader\UploaderServiceProvider::class);
    }

Configuration

You can configure it through the .env file using these settings:, (*6)

UPLOADER_FILES_DISK=s3
UPLOADER_FILES_SUBPATH=files
UPLOADER_FILES_FILE_NAMING=fix

UPLOADER_IMAGES_DISK=s3
UPLOADER_IMAGES_SUBPATH=images
UPLOADER_IMAGES_FILE_NAMING=fix
UPLOADER_IMAGES_RESIZE_MAX_WIDTH=1280
UPLOADER_IMAGES_RESIZE_MEMORY_LIMIT=128M

Use

<?php

namespace App\Http\Controllers;

// Import the Shoperti Uploader Manager in your controller
use Shoperti\Uploader\Contracts\UploaderManager;
use Shoperti\Uploader\Exceptions\DisallowedFileException;
use Shoperti\Uploader\Exceptions\InvalidFileException;
use Shoperti\Uploader\Exceptions\RemoteFileException;

// To upload or delete a file, just inject the manager either in the constructor
// or in the action method

class Controller extends BaseController
{
   /**
    * Uploads a file.
    *
    * @param \Shoperti\Uploader\Contracts\UploaderManager $uploaderManager
    */
    public function upload(UploaderManager $uploaderManager)
    {
        try {
            /** @var \Shoperti\Uploader\UploadResult uploadResult */
            $uploadResult = $uploaderManager

                // generate an Uploader through the manager
                // using the uploaded file or the file URL as argument
                ->make(request()->file('file') ?: request()->input('file'))

                // then call the upload() method with the location path as argument
                ->upload($path = 'my_files', $disk = null);

        } catch (DisallowedFileException $dfe) {

            // If the uploaded file has a disallowed mime-type

        } catch (InvalidFileException $ife) {

            // If the uploaded file is invalid

        } catch (RemoteFileException $rfe) {

            // If the file input was a file-url string which cannot be fetched

        }
    }

   /**
    * Deletes a file.
    *
    * @param \Shoperti\Uploader\Contracts\UploaderManager $uploaderManager
    */
    public function delete(UploaderManager $uploaderManager)
    {
        $uploaderManager
            ->delete($disk = 's3', $filepath = \Request::input('file'))
    }
}

The Versions