Stars: 167
Forks: 87
Pull Requests: 131
Issues: 211
Watchers: 11
Last Updated: 2023-08-31 15:09:54
The file upload extension with insane intelligence for your Flarum forum.
License: MIT License
Languages: PHP, JavaScript, Less, Blade
An extension that handles file uploads intelligently for your forum.
Install manually:
composer require fof/upload "*"
composer require fof/upload "*"
php flarum migrate
php flarum cache:clear
Enable the extension, a new tab will appear on the left hand side. This separate settings page allows you to further configure the extension.
Make sure you configure the upload permission on the permissions page as well.
Regular expressions allow you a lot of freedom, but they are also very difficult to understand. Here are some pointers, but feel free to ask for help on the official Flarum forums.
In case you want to allow all regular file types including video, music, compressed files and images, use this:
(video\/(3gpp|mp4|mpeg|quicktime|webm))|(audio\/(aiff|midi|mpeg|mp4))|(image\/(gif|jpeg|png))|(application\/(x-(7z|rar|zip)-compressed|zip|arj|x-(bzip2|gzip|lha|stuffit|tar)|pdf))
A mimetype consists of a primary and secondary type. The primary type can be image
, video
and application
for instance.
The secondary is like a more detailed specification, eg png
, pdf
etc. These two are divided by a /
, in regex you have to escape this character by using: \/
.
In some circumstances, you may wish to either disable an adapter, or force the use of one. This is set in your root extend.php
file.
For example, you may disable imgur
(new FoF\Upload\Extend\Adapters())
->disable('imgur'),
Chaining of multiple commands is also possible:
(new FoF\Upload\Extend\Adapters())
->disable('imgur')
->disable('aws-s3'),
You may also force an adapter:
(new FoF\Upload\Extend\Adapters())
->force('imgur'),
Adapter names currently available:
local
imgur
qiniu
aws-s3
Using php flarum fof:upload
you have a powerful tool in your hands to map uploads to posts and
clean up unused files. To do so there are two steps to take into consideration:
--map
) allows you to look through posts to identify whether which uploaded files have been used inside any posts, and store this information--cleanup
, --cleanup-before=yyyy-mm-dd
) grants you to ability to remove files that have been uploaded before the given time and haven't been mapped to any (existing) posts.The intent of this command stems from the original concept of understand what uploads are used where and to allow removal of unused, stale files. You can run this command manually or as a cronjob.
Example 1; only mapping files:
php flarum fof:upload --map
Example 2; map and clean up
php flarum fof:upload --map --cleanup --cleanup-before="a month ago"
Once you're happy with how the command operates, you can append the flag --force
, which removes the need to confirm
the action:
php flarum fof:upload --map --cleanup --cleanup-before="last year" --force
The following (to resume) will happen when this command is put into a recurring cronjob:
An extension by FriendsOfFlarum