ibekzod/uploader

Uploader with database integration and dynamic file structure

v1.0.2 2023-01-25 11:54 UTC

This package is auto-updated.

Last update: 2024-04-25 14:50:51 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

This is file uploader lightweight package with upload service and ready made api with controllers

Installation

You can install the package via composer:

composer require ibekzod/uploader

Publish the config file (config/mediable.php) of the package using artisan.

php artisan vendor:publish --provider="IBekzod\Uploader\UploaderServiceProvider"

Run the migrations to add the required tables to your database.

php artisan migrate

Usage

Upload a file to the server, and place it in a directory on the filesystem disk named "uploads" with subdirectory "files" or your custom referring type

<?php
    use IBekzod\Uploader\Uploader;
    use IBekzod\Uploader\Models\Upload;
    use App\Models\Post;

    $upload = Uploader::uploadAttachment($request->file('attachment'))->getUpload();
    //Let's assume we have Post model with image_id column or file_id whatever name you can write
    $post = Post::create([
        'title'=>'Title',
        'body'=>'Body',
        'image_id'=>$upload->id //unsigned big integer is preferred
    ]);
    //This is optional if you want to find 
    $upload->relation='post';//or simply Post::class
    $upload->relation_id=$post->id;
    $upload->save();
    //By this way you can get all post images
    $allPostImages=Upload::where('relation', 'post')->get();
    //Or related first post image
    $postImage=Upload::where('relation', 'post')->where('relation_id', $post->id)->first();
    //You are free to design your structure by using Upload

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email erkinovbegzod.45@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.