unisharp/laravel-uploadable

A simple package to attach files to a eloquent model.
3,048 5
Install
composer require unisharp/laravel-uploadable
License:MIT
Last Updated:Nov 19, 2018
Links: GitHub  ·  Packagist
Maintainer: g0110280

Uploadable

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

A simple package to attach files to a eloquent model.

Installation

composer require unisharp/laravel-uploadable dev-master

Configuration

Set configuration in config/uploadable.php

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

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

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

Related Packages

ideil/laravel-generic-file

Easy uploaded files store management for the Laravel.

2,165 0
roboticsexpert/laravel-stapler

Easy file upload management for the Laravel Framework.

1,126 1
unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMC...

3,651,997 2,148
codesleeve/laravel-stapler

Easy file upload management for the Laravel Framework.

415,748 556
a7madev/laravel-stapler

Easy file upload management for the Laravel Framework.

97 0