File uploads and management, for CodeIgniter 4
- Install with Composer:
> composer require tatter/files
- Migrate the database:
> php spark migrate -all
- Seed the database:
> php spark db:seed "Tatter\Files\Database\Seeds\FileSeeder"
- Start managing files: https://[yourdomain.com]/files
The Files module is a self-contained set of routes and functions that adds uploading and CRUD controls to any project. It uses DropzoneJS for drag-and-drop uploads, and supports a number of extensions for directing files to other locations (WIP).
Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities and always be up-to-date:
> composer require tatter/files
Or, install manually by downloading the source files and adding the directory to
app/Config/Autoload.php
.
Once the files are downloaded and included in the autoload, run any library migrations to ensure the database is setup correctly:
> php spark migrate -all
Finally, run the seeder to install necessary database settings:
php spark db:seed "Tatter\Files\Database\Seeds\FileSeeder"
NOTE: If your project is part of a tracking repository you probably want to add the file storage to your .gitignore
writable/files/*
!writable/files/index.html
The library's default behavior can be altered by extending its config file. Copy bin/Files.php to app/Config/ and follow the instructions in the comments. If no config file is found in app/Config the library will use its own.
Default routes:
- files/index - If user is allowed
mayList()
then shows all files, otherwise tries to fall back to the current logged in user - files/user - Shows files for a single user; if no user ID is supplied it defaults to the current logged in user
Available formats:
- ?format=cards - Default view with thumbnail on responsive layout
- ?format=list - An efficient list of files in table format
- ?format=select - Can be used to create selectable files, e.g. as part of a form
This library uses Tatter\Permits to control access to files, both generally (list, create)
and specifically per user or group. The super-permit mayAdmin()
can be added to a user or
group for global file access.
By default the files/ routes are available as soon as the module is installed. In most cases you will want to use Route Filters to restrict some or all of the routes.