PHPackages                             iamroi/roi-filemanager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. iamroi/roi-filemanager

ActivePackage

iamroi/roi-filemanager
======================

Framework agnostic file manager for PHP.

119[1 PRs](https://github.com/iamroi/roi-filemanager/pulls)PHP

Since May 9Pushed 3y ago1 watchersCompare

[ Source](https://github.com/iamroi/roi-filemanager)[ Packagist](https://packagist.org/packages/iamroi/roi-filemanager)[ RSS](/packages/iamroi-roi-filemanager/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Roi Filemanager - PHP
=====================

[](#roi-filemanager---php)

Roi Filemanager provides simple API to manage your media library. The storage of files are handled by [Flysystem](https://flysystem.thephpleague.com/), so you can use of number of adapters provided or use your own. This package is framework agnostic.

All files and folder entries are recorded in the local database so that all of the expensive read requests are handled effeciently. The physical location of your files will be your choice. Flysystem supports various number of options to choose from S3, SFTP, Dropbox, Azure etc...

Usage
=====

[](#usage)

Initialize
----------

[](#initialize)

```
Use \Iamroi\RoiFilemanager;

...

$config['db'] = [
  'host' => 'DB_HOST',
  'database' => 'DB_DATABASE',
  'username' => 'DB_USERNAME',
  'password' => 'DB_PASSWORD',
];

$config['publicRoot'] = "/absoulte/path/to/your/public/directory";

// optional
$config['fileManagerDir'] = 'media'; // all of the filemanager files will be stored under this folder

$fileManager = new RoiFileManager($config);

```

Upload
------

[](#upload)

```
$response = $fileManager->upload('your/destination/path/here');

```

### Using different upload name

[](#using-different-upload-name)

default uploaded file name is 'file' to change the uploaded file name for example `$_FILES['name']['my_precious_file']`

```
$response = $fileManager->upload('your/destination/path/here', 'my_precious_file');

```

List
----

[](#list)

```
$response = $fileManager->list($path, $search, $page, $limit);

```

Delete
------

[](#delete)

This will delete the entry from the local database and also from the physical location of your choice. `$path` can be file path, folder path, array of file paths or array of folder paths

```
$response = $fileManager->delete($path);

```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/9389fb5ee5297fdfca3e5ebab6c51046c8346ac76013179fbb871903677eacb4?d=identicon)[iamroi](/maintainers/iamroi)

---

Top Contributors

[![iamroi](https://avatars.githubusercontent.com/u/4452859?v=4)](https://github.com/iamroi "iamroi (8 commits)")

### Embed Badge

![Health badge](/badges/iamroi-roi-filemanager/health.svg)

```
[![Health](https://phpackages.com/badges/iamroi-roi-filemanager/health.svg)](https://phpackages.com/packages/iamroi-roi-filemanager)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
