2017 © Pedro Peláez
 

library laravel-uploadable

A simple package to attach files to a eloquent model.

image

unisharp/laravel-uploadable

A simple package to attach files to a eloquent model.

  • Thursday, July 12, 2018
  • by g0110280
  • Repository
  • 9 Watchers
  • 2 Stars
  • 2,023 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 29 % Grown

The README.md

Uploadable

Latest Version on Packagist ![Software License][ico-license] Build Status ![Coverage Status][ico-scrutinizer] Quality Score ![Total Downloads][ico-downloads], (*1)

A simple package to attach files to a eloquent model., (*2)

Installation

composer require unisharp/laravel-uploadable dev-master

Configuration

Set configuration in config/uploadable.php, (*3)

return [
    // Set image orientate enable or disable
    'use_image_orientate' => false,

    // Set thumbnail size
    'thumbs' => [
        's' => '96x96',
        'm' => '256x256',
        'l' => '480x480'
    ],

    // Set image handler
    'plugins' => [
        ImageHandler::class
    ]
];

Usages

Use trait in the model


namespace App; use Illuminate\Database\Eloquent\Model; use Unisharp\Uploadable\CanUpload; class Product extends Model { use CanUpload; public function image() { return $this->morphOne(Image::class, 'imageable'); } }

Manually upload and Delete files

// Upload a file
$product = new Product();
$product->upload(request()->file());

// Delete a file
$file = $product->files()->first();
$product->removeFiles($file->id);

// Delete files
$files = $product->files->pluck('id');
$product->removeFiles($files);

Upload/Delete through APIs


// POST /files/ & DELETE /files/{file} UniSharp\Uploadable\UploaderManager::route(); // POST /files/ UniSharp\Uploadable\UploaderManager::route(['store']); // POST /files/ with callback UniSharp\Uploadable\UploaderManager::route(['store'], function () { ... });

Customize image handler

Image Handler, (*4)

use Intervention\Image\Facades\Image;
use Illuminate\Filesystem\FilesystemAdapter;

class CustomImageHandler {
    public function handle(FilesystemAdapter $storage, $path)
    {
        $image = Image::make($storage->path($path));

        ...

        $image->save();
    }
}

Set Custom image handler in config/uploadable.php, (*5)

return [
    'plugins' => [
        CustomImageHandler::class
    ]
];

The Versions