File manager for Laravel

Overview

Laravel File Manager

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel File Manager

DEMO: Laravel File Manager

Vue.js Frontend: alexusmai/vue-laravel-file-manager

Documentation

Laravel File Manager Docs

Features

  • Frontend on Vue.js - vue-laravel-file-manager
  • Work with the file system is organized by the standard means Laravel Flysystem:
    • Local, FTP, S3, Dropbox ...
    • The ability to work only with the selected disks
  • Several options for displaying the file manager:
    • One-panel view
    • One-panel + Directory tree
    • Two-panel
  • The minimum required set of operations:
    • Creating files
    • Creating folders
    • Copying / Cutting Folders and Files
    • Renaming
    • Uploading files (multi-upload)
    • Downloading files
    • Two modes of displaying elements - table and grid
    • Preview for images
    • Viewing images
    • Full screen mode
  • More operations (v.2):
    • Audio player (mp3, ogg, wav, aac), Video player (webm, mp4) - (Plyr)
    • Code editor - (Code Mirror)
    • Image cropper - (Cropper.js)
    • Zip / Unzip - only for local disks
  • Integration with WYSIWYG Editors:
    • CKEditor 4
    • TinyMCE 4
    • TinyMCE 5
    • SummerNote
    • Standalone button
  • ACL - access control list
    • delimiting access to files and folders
    • two work strategies:
      • blacklist - Allow everything that is not forbidden by the ACL rules list
      • whitelist - Deny everything, that not allowed by the ACL rules list
    • You can use different repositories for the rules - an array (configuration file), a database (there is an example implementation), or you can add your own.
    • You can hide files and folders that are not accessible.
  • Events (v2.2)
  • Thumbnails lazy load
  • Dynamic configuration (v2.4)
  • Supported locales : ru, en, ar, sr, cs, de, es, nl, zh-CN, fa, it, tr, fr, pt-BR, zh-TW, pl

In a new version 2.5

You can change Route prefix (default - 'file-manager')

/**
 * LFM Route prefix
 * !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!!
 */
'routePrefix' => 'file-manager',

Open PDF files in a new tab (test) - use 'double-click'

Upgrading to version 2.5

Add a new parameter to the configuration file (config/file-manager.php)

/**
 * LFM Route prefix
 * !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!!
 */
'routePrefix' => 'file-manager',

Update pre-compiled css and js files.

php artisan vendor:publish --tag=fm-assets --force
Comments
  • Show real path of the file/image

    Show real path of the file/image

    Screen Shot 2019-04-19 at 10 20 52 AM

    Hi, Is it possible to change the value of the path on the modal into real path of the file/image? I tried to open the js file, and it shown e.selectedItem.path. I don't know where i can set/change this variable value.

    The real path should be like https://domain.com/images/upload/0a8bbd26b03ed2b619ca12fe8e4b2e2c.jpg

    Thanks

    opened by xuweisen 18
  • Как верно настроить ACL на S3

    Как верно настроить ACL на S3

    Вечер добрый. Сразу к сути, у меня на s3 под каждого пользователя создается в корне корзины (bucket) своя папка с подпапками, скажем ivanov_1 и ее подпапки images, filemanager, articles, .... Как правильно настроить UsersACLRepository, чтобы при загрузке чего либо в редакторе, пользователь видел только одну подпапку в своей главной папке? И второй вопрос, зачем метод getUserID переопределяется в UsersACLRepository, можно вместо id что-то отдавать другое? Спасибо

    Сам UsersACLRespository

    <?php
    
    namespace App\Repository;
    
    use Alexusmai\LaravelFileManager\Services\ACLService\ACLRepository;
    
    /**
     * Class UsersACLRepository
     * @package App\Repository
     */
    class UsersACLRepository implements ACLRepository
    {
        /**
         * Get user ID
         *
         * @return mixed
         */
        public function getUserID()
        {
            return \Auth::user()->id;
        }
    
        /**
         * Get ACL rules list for user
         *
         * @return array
         */
        public function getRules(): array
        {
           $dir = \Auth::user()->name . '_' .\Auth::user()->id;
            return [
                ['disk' => 's3', 'path' => $dir.'/fm/*', 'access' => 2],
            ];
        }
    }
    

    Сам конфиг fm

    <?php
    
    return [
    
        /**
         * list of disk names that you want to use
         * (from config/filesystems)
         */
        'diskList'  => ['s3'],
    
        /**
         * Default disk for left manager
         * null - auto select the first disk in the disk list
         */
        'leftDisk'  => null,
    
        /**
         * Default disk for right manager
         * null - auto select the first disk in the disk list
         */
        'rightDisk' => null,
    
        /**
    	 * Default path for left manager
    	 * null - root directory
    	 */
    	'leftPath'  => null,
    
    	/**
    	 * Default path for right manager
    	 * null - root directory
    	 */
    	'rightPath' => null,
    
        /**
         * Image cache ( Intervention Image Cache )
         * set null, 0 - if you don't need cache (default)
         * if you want use cache - set the number of minutes for which the value should be cached
         */
        'cache' => null,
    
        /**
         * File manager modules configuration
         * 1 - only one file manager window
         * 2 - one file manager window with directories tree module
         * 3 - two file manager windows
         */
        'windowsConfig' => 2,
    
        /***************************************************************************
         * Middleware
         * Add your middleware name to array -> ['web', 'auth', 'admin']
         * !!!! RESTRICT ACCESS FOR NON ADMIN USERS !!!!
         *
         * !!! For using ACL - add 'fm-acl' to array !!! ['web', 'fm-acl']
         */
        'middleware' => ['web', 'auth', 'fm-acl'],
    
        /***************************************************************************
         * ACL mechanism ON/OFF
         *
         * default - false(OFF)
         */
        'acl' => true,
    
        /**
         * Hide files and folders from file-manager if user doesn't have access
         * ACL access level = 0
         */
        'aclHideFromFM' => true,
    
        /**
         * ACL strategy
         *
         * blacklist - Allow everything(access - 2 - r/w) that is not forbidden by the ACL rules list
         *
         * whitelist - Deny anything(access - 0 - deny), that not allowed by the ACL rules list
         */
        'aclStrategy'   => 'blacklist',
    
        /**
         * ACL rules repository
         *
         * default - config file(ConfigACLRepository)
         */
        'aclRepository' => \App\Repository\UsersACLRepository::class,
        //'aclRepository' => Alexusmai\LaravelFileManager\Services\ACLService\ConfigACLRepository::class,
        //'aclRepository' => Alexusmai\LaravelFileManager\Services\ACLService\DBACLRepository::class,
    
        /**
         * ACL rules list - used for default repository
         *
         * 1 it's user ID
         * null - for not authenticated user
         *
         * 'disk' => 'disk-name'
         *
         * 'path' => 'folder-name'
         * 'path' => 'folder1*' - select folder1, folder12, folder1/sub-folder, ...
         * 'path' => 'folder2/*' - select folder2/sub-folder,... but not select folder2 !!!
         * 'path' => 'folder-name/file-name.jpg'
         * 'path' => 'folder-name/*.jpg'
         *
         * * - wildcard
         *
         * access: 0 - deny, 1 - read, 2 - read/write
         */
        'aclRules'      => [
            null => [
                ['disk' => 'public', 'path' => '*', 'access' => 0]
            ],
           /* 1 => [
            	['disk' => 's3', 'path' => '*', 'access' => 2]
            ]*/
        ],
    
        /**
         * ACL Rules cache
         *
         * null or value in minutes
         */
        'aclRulesCache' => null,
    ];
    
    opened by sergey89d 16
  • new Disklist on controller

    new Disklist on controller

    Hello it's possible to declare a new disklist in controller ?

    i've lot of sftp information, i would like to update the diskList from Config::set("file-manager.diskList", [$newDisk])

    Thk

    opened by Djomobil 12
  • only part of filename shown

    only part of filename shown

    i have many chinese filename in the folder, but only show part of filename, it's seems filename broken with some character like '-' or something i don't know. please tell me how to fix the problem.

    釋迦牟尼佛介紹-2019.jpg => -2019.jpg 變身金母介紹-2019-修改.jpg => -2019-修改.jpg 講授道果-logo.png => -logo.png 穢跡金剛logo-小檔.jpg => logo-小檔.jpg 諸尊名諱20171211更新.jpg => 20171211更新.jpg

    image

    opened by shinnlu 12
  • Dosn't show any thing after installation

    Dosn't show any thing after installation

    after do all steps of installation and configuration without any error the view file still empty ! image image also i try to check the paths and all configs are ok image

    opened by omar-zr 11
  • Unrestricted File Upload Bypass Allow File Types to RCE - Security

    Unrestricted File Upload Bypass Allow File Types to RCE - Security

    Hi,

    I would like to report an unrestricted file upload in laravel-file-manager

    Steps To Reproduce

    • Set config allowFileTypes For example ['jpg', 'jpeg', 'png', 'gif']
    • Open Url laravel-file-manager and upload any PHP code and change file extension to image extensions
    • Rename File.png to File.php

    Proof of concept (POC)

    https://i.imgur.com/n8hoQNv.gif

    Impact

    The consequences of unrestricted file upload can vary, including complete system takeover, an overloaded file system or database, forwarding attacks to back-end systems, and simple defacement. Here is the list of attacks that the attacker might do: Compromise the webserver by uploading and executing a web-shell which can run commands, browse system files, browse local resources, attack other servers, and exploit the local vulnerabilities, and so forth. Put a phishing page into the website. Put a permanent XSS into the website. Bypass cross-origin resource sharing (CORS) policy and exfiltrate potentially sensitive data. Upload a file using a malicious path or name which overwrites critical file or personal data that other users access. For example; the attacker might replace the .htaccess file to allow him/her to execute specific scripts.

    Fix

    Should be not allowed to change extensions

    Thanks!

    opened by mahdiAlhashemi 9
  • How to use the aclRule array and change pemission with respect to user in runtime?

    How to use the aclRule array and change pemission with respect to user in runtime?

    ->file-manager file as follow:

    ['public'], 'middleware' => ['web','fm-acl'], 'acl' => true, 'aclHideFromFM' => true, 'aclStrategy' => 'blacklist', 'aclRepository' => Alexusmai\LaravelFileManager\ACLService\ConfigACLRepository::class, 'aclRules' => [ 1 => [ ['disk' => 'public', 'path' => 'files/*', 'access' => 2], ], ], ];
    As I am setting the acl mode to true and using acl rule.
    my view code is in the picture.
    ![screenshot from 2019-02-08 12-10-35](https://user-images.githubusercontent.com/24617277/52477655-9d911600-2b9a-11e9-8caf-853dcb88c976.png)
    but when I run my application and check the file manager. The directory it shows is different then, what is set in the aclRule array, as shown below
    ![screenshot from 2019-02-08 12-25-55](https://user-images.githubusercontent.com/24617277/52478256-b4386c80-2b9c-11e9-81ca-0e757787e23e.png)
    opened by Ahmadzia307 9
  • acl for each user not work

    acl for each user not work

    <?php
    
    namespace App\fileManager;
    
    use Alexusmai\LaravelFileManager\Services\ACLService\ACLRepository;
    
    class ConfigACLRepository implements ACLRepository
    {
    
        public function getUserID()
        {
            return auth()->id();
        }
    
        public function getRules(): array
        {
    
            if (auth()->id() === 1) {
                return [
                    ['disk' => 'publicUpload', 'path' => '*', 'access' => 2],
                ];
            }
    
            return [
                ['disk' => 'publicUpload', 'path' => 'users/'. \Auth::user()->name .'/*', 'access' => 2],  // read and write
               ];
        }
    }
    
    

    i have bellow structure folder uploads/users/vahid i need show content vahid folder when vahid is logined but display error access denied for vahid

    opened by vahidalvandi 8
  • Not able to upload file or create folder

    Not able to upload file or create folder

    I've followed all the instruction from installation. But I am unable to do anything. I can't upload file, I can't create folder. When I click on upload icon nothing happens.

    Here's my file-manager.php

    
    use Alexusmai\LaravelFileManager\Services\ConfigService\DefaultConfigRepository;
    use Alexusmai\LaravelFileManager\Services\ACLService\ConfigACLRepository;
    
    return [
    
        /**
         * Set Config repository
         *
         * Default - DefaultConfigRepository get config from this file
         */
        'configRepository' => DefaultConfigRepository::class,
    
        /**
         * ACL rules repository
         *
         * Default - ConfigACLRepository (see rules in - aclRules)
         */
        'aclRepository' => ConfigACLRepository::class,
    
        //********* Default configuration for DefaultConfigRepository **************
    
        /**
         * List of disk names that you want to use
         * (from config/filesystems)
         */
        'diskList' => ['local'],
    
            /**
         * Default disk for left manager
         * null - auto select the first disk in the disk list
         */
        'leftDisk'  => 'local',
    
        /**
         * Default disk for right manager
         * null - auto select the first disk in the disk list
         */
        'rightDisk' => null,
    
        /**
         * Default path for left manager
         * null - root directory
         */
        'leftPath'  => null,
    
        /**
         * Default path for right manager
         * null - root directory
         */
        'rightPath' => null,
    
        /**
         * Image cache ( Intervention Image Cache )
         *
         * set null, 0 - if you don't need cache (default)
         * if you want use cache - set the number of minutes for which the value should be cached
         */
        'cache' => null,
    
        /**
         * File manager modules configuration
         *
         * 1 - only one file manager window
         * 2 - one file manager window with directories tree module
         * 3 - two file manager windows
         */
        'windowsConfig' => 2,
    
        /**
         * File upload - Max file size in KB
         *
         * null - no restrictions
         */
        'maxUploadFileSize' => 5000,
    
        /**
         * File upload - Allow these file types
         *
         * [] - no restrictions
         */
        'allowFileTypes' => [],
    
        /***************************************************************************
         * Middleware
         *
         * Add your middleware name to array -> ['web', 'auth', 'admin']
         * !!!! RESTRICT ACCESS FOR NON ADMIN USERS !!!!
         */
        'middleware' => ['web'],
    
        /***************************************************************************
         * ACL mechanism ON/OFF
         *
         * default - false(OFF)
         */
        'acl' => false,
    
        /**
         * Hide files and folders from file-manager if user doesn't have access
         *
         * ACL access level = 0
         */
        'aclHideFromFM' => true,
    
        /**
         * ACL strategy
         *
         * blacklist - Allow everything(access - 2 - r/w) that is not forbidden by the ACL rules list
         *
         * whitelist - Deny anything(access - 0 - deny), that not allowed by the ACL rules list
         */
        'aclStrategy' => 'blacklist',
    
        /**
         * ACL Rules cache
         *
         * null or value in minutes
         */
        'aclRulesCache' => null,
    
        //********* Default configuration for DefaultConfigRepository END **********
    
    
        /***************************************************************************
         * ACL rules list - used for default ACL repository (ConfigACLRepository)
         *
         * 1 it's user ID
         * null - for not authenticated user
         *
         * 'disk' => 'disk-name'
         *
         * 'path' => 'folder-name'
         * 'path' => 'folder1*' - select folder1, folder12, folder1/sub-folder, ...
         * 'path' => 'folder2/*' - select folder2/sub-folder,... but not select folder2 !!!
         * 'path' => 'folder-name/file-name.jpg'
         * 'path' => 'folder-name/*.jpg'
         *
         * * - wildcard
         *
         * access: 0 - deny, 1 - read, 2 - read/write
         */
        'aclRules' => [
            null => [
                //['disk' => 'public', 'path' => '/', 'access' => 2],
            ],
            1 => [
                //['disk' => 'public', 'path' => 'images/arch*.jpg', 'access' => 2],
                //['disk' => 'public', 'path' => 'files/*', 'access' => 1],
            ],
        ],
    ];
    

    Here's my home.blade.php

    @extends('layouts.app')
    
    @section('content')
    <div class="container">
        <div style="height: 700px;">
            <div id="fm"></div>
        </div>
    </div>
    @endsection
    
    

    Here's my app.blade.php

    <!DOCTYPE html>
    <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <!-- CSRF Token -->
        <meta name="csrf-token" content="{{ csrf_token() }}">
    
        <title>{{ config('app.name', 'Laravel') }}</title>
    
        <!-- Scripts -->
        <script src="{{ asset('js/app.js') }}" defer></script>
    
        <!-- Fonts -->
        <link rel="dns-prefetch" href="//fonts.gstatic.com">
        <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
    
        <!-- File Manager CSS -->
        <link rel="stylesheet" href="{{ asset('vendor/file-manager/css/file-manager.css') }}">
    
        <!-- Styles -->
        <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    
        <!-- Font Awesome 5 -->
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css">
        
        <!-- Bootstrap 4 -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
       
        <!-- CSRF Token -->
        <meta name="csrf-token" content="{{ csrf_token() }}">
    </head>
    <body>
        <div id="app">
            <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
                <div class="container">
                    <a class="navbar-brand" href="{{ url('/') }}">
                        {{ config('app.name', 'Laravel') }}
                    </a>
                    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
                        <span class="navbar-toggler-icon"></span>
                    </button>
    
                    <div class="collapse navbar-collapse" id="navbarSupportedContent">
                        <!-- Left Side Of Navbar -->
                        <ul class="navbar-nav mr-auto">
    
                        </ul>
    
                        <!-- Right Side Of Navbar -->
                        <ul class="navbar-nav ml-auto">
                            <!-- Authentication Links -->
                            @guest
                                <li class="nav-item">
                                    <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
                                </li>
                                @if (Route::has('register'))
                                    <li class="nav-item">
                                        <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                                    </li>
                                @endif
                            @else
                                <li class="nav-item dropdown">
                                    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                        {{ Auth::user()->name }} <span class="caret"></span>
                                    </a>
    
                                    <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
                                        <a class="dropdown-item" href="{{ route('logout') }}"
                                           onclick="event.preventDefault();
                                                         document.getElementById('logout-form').submit();">
                                            {{ __('Logout') }}
                                        </a>
    
                                        <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                                            @csrf
                                        </form>
                                    </div>
                                </li>
                            @endguest
                        </ul>
                    </div>
                </div>
            </nav>
    
            <main class="py-4">
                @yield('content')
            </main>
        </div>
    
            <!-- File Manager JS -->
        <script src="{{ asset('vendor/file-manager/js/file-manager.js') }}"></script>
    
    </body>
    </html>
    
    

    Here's screenshot of application where the loading icon is showing. error

    I'm using XAMPP Version 7.3.9.

    opened by praful-dhabekar 8
  • Error 500

    Error 500

    Hi,

    Sorry for this post i know it's a configuration issue but i have 2 error 500. https://gyazo.com/6a4f114b3b5d89e7d2ef7eaeef341671

    This works fine in local but not on production.

    The production machine is setup with debian 9 & nginx.

    I have tried to fix permissions folders and files without success.

    Do you have any idea ?

    Thank's in advance for you're help.

    opened by olcy 8
  • TinyMCE not showing selected picture in editor

    TinyMCE not showing selected picture in editor

    I am Using this code to call file-manager in tinymce file_picker_callback (callback, value, meta) { let x = window.innerWidth || document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth let y = window.innerHeight|| document.documentElement.clientHeight|| document.getElementsByTagName('body')[0].clientHeight

        tinymce.activeEditor.windowManager.openUrl({
          url : '/file-manager/tinymce5',
          title : 'Laravel File manager',
          width : x * 0.8,
          height : y * 0.8,
          onMessage: (api, message) => {
            callback(message.content, { text: message.text })
          }
        })
      },
    

    The image is successfully selected but then in editor there is this issue. image Capture

    opened by KHUZEMAH 7
  • Cropping as new image

    Cropping as new image

    Hello guys,

    I am building a blog page with managing images from S3 by this lib. The lib is so perfect without any problem.

    However, the users would like to be able cropping an image without impact to original one, therefore they don't need renaming and uploading new one from local to continue cropping.

    It's very nice if the lib exists the above feature.

    More suggestion: auto add suffix like "file (1)" when pasted

    Thanks

    opened by kylong 0
  • php error

    php error

    Error: Call to undefined function Alexusmai\LaravelFileManager\Services\ACLService\fnmatch() in file /www/panel/vendor/alexusmai/laravel-file-manager/src/Services/ACLService/ACL.php on line 49

    opened by DevHaoZi 0
  • middleware Auth

    middleware Auth

    I have set in the config file middleware to auth instead of web and login to the application Auth is working fine but when I navigate to file manager it shows me an error "401 - Unauthenticated."

    opened by asifkhalid03 2
Releases(v3.0.1)
  • v3.0.1(Feb 20, 2022)

  • v2.5.0(Jun 29, 2020)

    You can change Route prefix (default - 'file-manager')

    /**
     * LFM Route prefix
     * !!! WARNING - if you change it, you should compile frontend with new prefix(baseUrl) !!!
     */
    'routePrefix' => 'file-manager',
    

    Open PDF files in a new tab (test) - use 'double-click'

    Source code(tar.gz)
    Source code(zip)
  • v2.4.10(Jan 11, 2020)

  • v2.4.8(Dec 3, 2019)

  • v2.4.7(Nov 20, 2019)

    • Show / Hide system files and folders - in a config file you can set default value, but you can change this settings from FM manualy (added new button), without saving

    config/file-manager.php

    'hiddenFiles' => true,
    
    • Added edditing json and log files in text editor. (Be careful with json! invalid json will then be difficult to fix )

    • Now you don't need to install helper package for laravel 6 - laravel/helpers

    Upgrading

    You need to update you config file manualy (add new setting) or you can make --force updating, but make backup your settings first

    // config
    php artisan vendor:publish --tag=fm-config --force
    // js, css
    php artisan vendor:publish --tag=fm-assets --force
    

    If you are implementing ConfigRepository - add new method in your class

    /**
         * Show / Hide system files and folders
         *
         * @return bool
         */
        public function getHiddenFiles(): bool
        {
            return config('file-manager.hiddenFiles');
        }
    
    Source code(tar.gz)
    Source code(zip)
  • v2.4.4(Sep 16, 2019)

  • v2.4.3(Sep 5, 2019)

  • v2.4.2(Aug 24, 2019)

  • v2.4.1(Jul 18, 2019)

  • v2.4.0(Jul 17, 2019)

    Now you can create your own config repositories, it will allow to change your configuration dynamically.

    How to do it:

    Create new class - example - TestConfigRepository

    namespace App\Http;
    
    use Alexusmai\LaravelFileManager\Services\ConfigService\ConfigRepository;
    
    class TestConfigRepository implements ConfigRepository
    {
        // implement all methods from interface
    }
    

    For example see src/Services/ConfigService/DefaultConfigRepository.php

    • Added Serbian language (aleks989 )
    • fix bug with S3, creating a new folder with ACL
    • added 'maxUploadFileSize' param in to config - Max file size in KB (File uploading)
    • added 'allowFileTypes' param in to config - Allowed file types for uploading

    Upgrading to version 2.4

    Update pre-compiled css and js files and config file - file-manager.php

    // config
    php artisan vendor:publish --tag=fm-config --force
    // js, css
    php artisan vendor:publish --tag=fm-assets --force
    

    If you use the ACL, now you don't need to add the acl middleware to configuration.

    //======= In old versions ==========
    'acl' => true,
    
    // add acl middleware to your array
    'middleware' => ['web', 'fm-acl'],
    
    //======= In a new version =========
    'acl' => true,
    
    'middleware' => ['web'],
    
    Source code(tar.gz)
    Source code(zip)
  • v2.3.2(Jun 26, 2019)

  • v2.3.0(May 1, 2019)

    In new version you can set default disk and default path

    You have two variants for how to do it:

    1. Add this params to the config file (config/file-manager.php) 2 Or you can add this params in URL
    http://site.name/?leftDisk=diskName&leftPath=directory
    http://site.name/?leftDisk=diskName&leftPath=directory2&rightDisk=diskName2&rightPath=images
    

    leftDisk and leftPath is default for the file manager windows configuration - 1,2

    Upgrading to version 2.3

    Update pre-compiled css and js files and config file - file-manager.php

    // config
    php artisan vendor:publish --tag=fm-config --force
    // js, css
    php artisan vendor:publish --tag=fm-assets --force
    

    You can update the config file manually - add new params:

    /**
     * Default path for left manager
     * null - root directory
     */
    'leftPath'  => null,
    
    /**
     * Default path for right manager
     * null - root directory
     */
    'rightPath' => null,
    
    Source code(tar.gz)
    Source code(zip)
  • v2.2.3(Apr 28, 2019)

    • added timestamp to images - image updating after cropping

    • file properties - GetUrl - return full URL (see laravel docs)

    • file properties - copy to clippboard - disk, file name, path, url, size, date.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.1(Mar 3, 2019)

    Events

    • Alexusmai\LaravelFileManager\Events\DiskSelected
    • Alexusmai\LaravelFileManager\Events\FilesUploading
    • Alexusmai\LaravelFileManager\Events\FilesUploaded
    • Alexusmai\LaravelFileManager\Events\Deleting
    • Alexusmai\LaravelFileManager\Events\Deleted
    • Alexusmai\LaravelFileManager\Events\Paste
    • Alexusmai\LaravelFileManager\Events\Rename
    • Alexusmai\LaravelFileManager\Events\Download
    • Alexusmai\LaravelFileManager\Events\DirectoryCreating
    • Alexusmai\LaravelFileManager\Events\DirectoryCreated
    • Alexusmai\LaravelFileManager\Events\FileCreating
    • Alexusmai\LaravelFileManager\Events\FileCreated
    • Alexusmai\LaravelFileManager\Events\FileUpdate

    Upgrading to version 2.2

    src/ACLService folder and src/TransferService folder moved in src/Services folder

    If you using ACL change namespace in config file for 'aclRepository'

    // From
    'aclRepository' => Alexusmai\LaravelFileManager\ACLService\ConfigACLRepository::class,
    
    // To
    'aclRepository' => Alexusmai\LaravelFileManager\Services\ACLService\ConfigACLRepository::class,
    

    if you create your own repository for ACL rules, don't be forget change namespace to:

    // From
    Alexusmai\LaravelFileManager\ACLService;
    
    // To
    Alexusmai\LaravelFileManager\Services\ACLService;
    
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Feb 27, 2019)

    ACL - access control list

    • delimiting access to files and folders
    • two work strategies:
      • blacklist - Allow everything that is not forbidden by the ACL rules list
      • whitelist - Deny everything, that not allowed by the ACL rules list
    • You can use different repositories for the rules - an array (configuration file), a database (there is an example implementation), or you can add your own.
    • You can hide files and folders that are not accessible.
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Feb 27, 2019)

    New features:

    • Creating files
    • Audio player (mp3, ogg, wav, aac), Video player (webm, mp4) - (Plyr)
    • Code editor - (Code Mirror)
    • Image cropper - (Cropper.js)
    • Zip / Unzip - only for local disks
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Apr 22, 2018)

Laravel Manager provides some manager functionality for Laravel

Laravel Manager Laravel Manager was created by, and is maintained by Graham Campbell, and provides some manager functionality for Laravel. Feel free t

Graham Campbell 371 Jul 11, 2022
File manager for Laravel

Laravel File Manager DEMO: Laravel File Manager Vue.js Frontend: alexusmai/vue-laravel-file-manager Documentation Laravel File Manager Docs Installati

Aleksandr Manekin 937 Jan 1, 2023
File manager module for the Lumen PHP framework.

Lumen File Manager File manager module for the Lumen PHP framework. Please note that this module is still under active development. NOTE: Branch 5.1 i

Digia 40 Aug 20, 2022
Sebuah aplikasi file hosting sederhana yang berguna untuk menyimpan berbagai file

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Willy Ferry 2 Nov 25, 2021
laravel - Potion is a pure PHP asset manager for Laravel 5 based off of Assetic.

laravel-potion Potion is a pure PHP asset manager for Laravel based off of Assetic. Description Laravel 5 comes with a great asset manager called Elix

Matthew R. Miller 61 Mar 1, 2022
Laravel-tagmanager - An easier way to add Google Tag Manager to your Laravel application.

Laravel TagManager An easier way to add Google Tag Manager to your Laravel application. Including recommended GTM events support. Requirements Laravel

Label84 16 Nov 23, 2022
Migrator is a GUI migration manager for Laravel which you can create, manage and delete your migration.

Migrator Migrator is a GUI migration manager for Laravel which you can create, manage and delete your migration. Installation: To install Migrator you

Reza Amini 457 Jan 8, 2023
Seo Manager Package for Laravel ( with Localization )

Seo Manager Package for Laravel ( with Localization ) lionix/seo-manager package will provide you an interface from where you can manage all your page

Lionix 205 Dec 23, 2022
Bring multi themes support to your Laravel application with a full-featured Themes Manager

Introduction hexadog/laravel-themes-manager is a Laravel package which was created to let you developing multi-themes Laravel application. Installatio

hexadog 86 Dec 15, 2022
Webhook Manager for Laravel Nova

Webhook Manager for Laravel Nova A Laravel Nova tool that allows users to create and manage webhooks based on Eloquent Model events. A tool for Larave

Doug Niccum 9 Dec 27, 2022
Registry Manager for Laravel

Registry manager for Laravel 4 & 5. An alternative for managing application configurations and settings. Now with the magic of caching.

Daniel Stainback 22 Sep 28, 2020
Service manager for Slim compatible with Laravel packages

SlimServices SlimServices is a service manager for the Slim PHP microframework based on Laravel 4 service providers and DI container, allowing you to

its 76 Jul 23, 2022
A Laravel package to retrieve key management from AWS Secrets Manager

A Laravel package to retrieve key management from AWS Secrets Manager Communication via AWS Secrets Manager may incur unnecessary charges. So we devel

null 2 Oct 10, 2022
Menu ordering/management application demo, like Wordpress menu manager

Menu manager like Wordpress using Laravel and Nestable See demo at: http://laravel-menu-builder.gopagoda.com/admin/menu Tutorial coming up at: http://

Maksim Surguy 336 Nov 25, 2022
🧩 Generator Manager for 🙃 Phony Framework

?? Generator Manager This repository contains the Generator Manager for ?? Phony Framework. ?? Start generating fake data with ?? Phony Framework, vis

Phonyland 2 Jan 7, 2022
A PocketMine plugin to create custom ranks and permissions manager!

Ranks A PocketMine plugin to create custom ranks and permissions manager! ##Commands Command Usage Example /rank add - adds ranks! /rank add <rank_nam

DevilDev 4 Apr 6, 2022
Laravel Larex lets you translate your whole Laravel application from a single CSV file.

Laravel Larex Translate Laravel Apps from a CSV File Laravel Larex lets you translate your whole Laravel application from a single CSV file. You can i

Luca Patera 68 Dec 12, 2022
Laravel File System Watcher

Lara Inotify is a wrapper for inotify for Laravel to make it easier to watch filesystem and avoid memory leaks.

Octopy ID 13 Nov 5, 2022
Orbit is a flat-file driver for Laravel Eloquent

Orbit is a flat-file driver for Laravel Eloquent. It allows you to replace your generic database with real files that you can manipulate using the methods you're familiar with.

Ryan Chandler 664 Dec 30, 2022