PHPackages                             aspectox/ax-filebrowser - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. aspectox/ax-filebrowser

ActiveLibrary[File &amp; Storage](/categories/file-storage)

aspectox/ax-filebrowser
=======================

A file browser package for Laravel applications

v1.0.0(1mo ago)01MITBladePHP ^8.3

Since Jun 14Pushed 1mo agoCompare

[ Source](https://github.com/AspectoX/ax-filebrowser)[ Packagist](https://packagist.org/packages/aspectox/ax-filebrowser)[ RSS](/packages/aspectox-ax-filebrowser/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

AX File Browser
===============

[](#ax-file-browser)

A full-featured file manager package for Laravel applications. Browse, upload, organize, and manage files directly from your app with support for metadata, image editing, galleries, and an embeddable file picker.

Features
--------

[](#features)

- Browse folders and files with list and gallery views
- Upload files or link external URLs
- Create, rename, move, copy, and delete files and folders
- Upload image galleries (multiple files to a new folder in one step)
- File metadata: author, source URL, date, description, tags
- Built-in image editor (crop, rotate, flip, resize, brightness/contrast/saturation, filters)
- File search and filtering by type, extension, author, and size
- Embeddable file picker (for use in CKEditor, TinyMCE, custom inputs, etc.)
- Disk usage stats
- Breadcrumb navigation and sidebar folder tree
- Multilingual: English and Spanish included

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 13.x

Installation
------------

[](#installation)

Install via Composer:

```
composer require aspectox/ax-filebrowser
```

Laravel will auto-discover the service provider. Then run the migrations:

```
php artisan migrate
```

Publish the assets (CSS and JS):

```
php artisan vendor:publish --tag=ax-filebrowser-assets
```

This copies the CSS and JS files to `public/vendor/ax-filebrowser/`.

Layout Integration
------------------

[](#layout-integration)

The package views use `@push('styles')` and `@push('scripts')` to inject assets into your layout. For this to work, your layout must include the corresponding `@stack` directives.

Add `@stack('styles')` inside your `` tag and `@stack('scripts')` before ``:

```
{{-- In your layout head partial --}}
@stack('styles')

{{-- In your layout before  --}}
@stack('scripts')
```

Once the assets are published and the stacks are in place, navigate to `/ax-filebrowser` — the file browser will render inside your app's layout automatically.

Publishing other resources
--------------------------

[](#publishing-other-resources)

Publish only what you need:

```
# Config file
php artisan vendor:publish --tag=ax-filebrowser-config

# Blade views (to customize them)
php artisan vendor:publish --tag=ax-filebrowser-views

# Language files
php artisan vendor:publish --tag=ax-filebrowser-lang

# Everything at once (config + assets)
php artisan vendor:publish --tag=ax-filebrowser
```

Configuration
-------------

[](#configuration)

After publishing the config, edit `config/ax-filebrowser.php`:

```
return [
    // Root uploads folder, relative to public/
    // Example: 'uploads' → public/uploads
    'uploads_folder' => 'uploads',

    // Label shown in the sidebar and breadcrumb
    // Leave empty to use the folder name automatically
    'root_name' => '',
];
```

Usage
-----

[](#usage)

### File Browser

[](#file-browser)

Navigate to `/ax-filebrowser` in your application. The route is registered automatically.

### File Picker

[](#file-picker)

The picker is designed to be embedded in rich text editors or custom file inputs. Open it via:

```
/ax-filebrowser/picker?callback=myCallbackFunction

```

The `callback` parameter is the name of the JavaScript function that will receive the selected file path.

**Example with a plain input:**

```

Browse

function openPicker() {
    window.open(
        '/ax-filebrowser/picker?callback=onFilePicked',
        'picker',
        'width=1000,height=700'
    );
}

function onFilePicked(path) {
    document.getElementById('file-input').value = path;
}

```

Available Routes
----------------

[](#available-routes)

MethodURINameDescriptionGET`/ax-filebrowser``ax.index`Main file browser viewGET`/ax-filebrowser/picker``ax.picker`Embeddable file pickerGET`/ax-filebrowser/search``ax.search`Search filesGET`/ax-filebrowser/disk-usage``ax.disk.usage`Disk usage stats (JSON)POST`/ax-filebrowser/upload``ax.upload`Upload a file or link a URLPOST`/ax-filebrowser/upload-gallery``ax.upload.gallery`Upload image galleryPOST`/ax-filebrowser/folder/store``ax.folder.store`Create folderPOST`/ax-filebrowser/folder/rename``ax.folder.rename`Rename folderPOST`/ax-filebrowser/folder/delete``ax.folder.delete`Delete folderPOST`/ax-filebrowser/rename``ax.rename`Rename file or folderPOST`/ax-filebrowser/move``ax.move`Move file or folderPOST`/ax-filebrowser/copy``ax.copy`Copy file or folderGET`/ax-filebrowser/metadata-fetch``ax.metadata.fetch`Get file metadata (JSON)POST`/ax-filebrowser/metadata-fetch``ax.metadata.save`Save file metadata (JSON)POST`/ax-filebrowser/image/save``ax.image.save`Save edited imagePOST`/ax-filebrowser/delete/{id}``ax.file.delete`Delete file by metadata IDPOST`/ax-filebrowser/delete-by-path``ax.file.delete.path`Delete file by pathFile Metadata
-------------

[](#file-metadata)

Each file can store the following metadata:

FieldDescription`autor`Author or credit`credito_url`Source URL`fecha_archivo`File date`epigrafe`Description / caption`tags`Comma-separated tagsLocalization
------------

[](#localization)

The package ships with English and Spanish. To add another language, publish the lang files and add a new folder:

```
php artisan vendor:publish --tag=ax-filebrowser-lang
```

This creates `lang/vendor/ax-filebrowser/{locale}/ax-filebrowser.php`. Duplicate the `en` file and translate.

Editor Integration
------------------

[](#editor-integration)

The file picker can be integrated with popular rich text editors and inputs, including:

- CKEditor 4
- TinyMCE 6 / 7
- TipTap
- Filament (RichEditor and TipTap Editor for Filament)
- Quill
- Plain textarea / text input

Each integration uses a universal callback system: when a file is selected, the picker calls `window[callbackName](code, url, name)`, where `code` is a ready-to-insert HTML tag, `url` is the file path, and `name` is the filename.

For detailed setup instructions and code examples for each editor, see [`public/vendor/editor-plugins/integration.md`](public/vendor/editor-plugins/integration.md).

Support / Donations
-------------------

[](#support--donations)

If this package was useful to you, please consider making a donation. Any contribution is greatly appreciated!

License
-------

[](#license)

MIT — see [LICENSE](LICENSE) for details.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance91

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

43d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5675789?v=4)[AspectoX](/maintainers/virla01)[@virla01](https://github.com/virla01)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/aspectox-ax-filebrowser/health.svg)

```
[![Health](https://phpackages.com/badges/aspectox-ax-filebrowser/health.svg)](https://phpackages.com/packages/aspectox-ax-filebrowser)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M348](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M250](/packages/laravel-ai)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M134](/packages/roots-acorn)[moonshine/moonshine

Laravel administration panel

1.3k253.1k86](/packages/moonshine-moonshine)[laravel/folio

Page based routing for Laravel.

603583.7k34](/packages/laravel-folio)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)

PHPackages © 2026

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