Download the PHP package proside/file-manager without Composer

On this page you can find all versions of the php package proside/file-manager. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package file-manager

Proside File Manager (Livewire v4)

Gestor de ficheiros reutilizável para Laravel 10/11/12 construído integralmente em Livewire v4. Substitui o antigo File Manager em Next.js/React, mantendo paridade funcional e melhorando a arquitetura: sem iframe, sem JWT, sem serviço externo — corre dentro da própria aplicação Laravel e usa a autenticação/sessão existente.

Compatível com Laravel 10.49 e PHP 8.1+. Requer Livewire ^4.0.


Funcionalidades


Instalação

O Service Provider, rotas, componente Livewire e componentes Blade são registados automaticamente (package discovery).

1. Garantir o disco e o symlink

Por omissão usa o disco public. Crie o symlink uma vez:

2. (Opcional) Publicar recursos

3. Tailwind (importante)

O package usa classes utilitárias Tailwind (paleta proximo, equivalente ao antigo proximo). Se a sua app compila Tailwind, adicione o caminho das vistas do package ao content do tailwind.config.js para que as classes sejam geradas:

Tailwind v4 não usa o content do tailwind.config.js e ignora por omissão tudo o que está no .gitignore — ou seja, o vendor/. No ficheiro CSS de entrada da app:

Recompile (npm run build) depois de cada composer update do package, senão as classes novas não entram no CSS e a UI aparece meio por estilizar.

4. Agendar a limpeza do lixo

Em app/Console/Kernel.php:


Utilização

Página inteira

Já existe a rota GET /file-manager (configurável). Ou embeba o componente onde quiser:

Picker em formulários (drop-in)

Substitui o antigo <x-file-manager-modal> com a mesma API de props:

O ficheiro escolhido fica num <input type="hidden" name="..."> — o submit do formulário funciona exatamente como antes. Ao escolher, o componente emite o evento Livewire file-manager-selected ({ paths: [...] }).


Permissões por utilizador (scoping)

O File Manager pode confinar cada utilizador a uma ou mais pastas-raiz próprias. Define um resolver que devolve a(s) raiz(es) efetiva(s) do utilizador atual (relativas ao disco), ou null para acesso total:

Regras aplicadas pelo package quando há resolver:

O lixo espelha a árvore de origem

conteudos/optivisao/fotos/x.png é eliminado para apagados/conteudos/optivisao/fotos/x.png. Isto tem três consequências:

O sidecar .meta.json mantém-se, mas só guarda o prazo de expiração.

Migração. Instalações que já tenham itens no lixo antigo (plano, em apagados/<ficheiro>) deixam de os ver — o acesso falha fechado, nada é perdido. Para os recuperar, mova cada ficheiro para o caminho indicado no respetivo originalPath prefixado por apagados/, ou esvazie o lixo antes de atualizar.

Copiar URL

O menu de contexto de um ficheiro tem Copiar URL, que copia o endereço de media (…/file-manager/media/conteudos/…) para a área de transferência.

A cópia é feita inteiramente no cliente: o URL já vem em cada item da listagem, por isso não há pedido ao servidor. É um endereço público e permanente — vale o que a rota de media valer (ver a nota mais abaixo).

Auditoria

As operações que alteram ficheiros (upload, mover, copiar, duplicar, renomear, criar pasta, eliminar, restaurar, eliminar definitivamente, partilhar, prune) são registadas via o logger do Laravel, com utilizador e IP. Para as separar do log da aplicação, defina um canal em config/logging.php e aponte file-manager.audit.channel para ele.

Exemplo de resolver (Backoffice Proside — perfil gflevel ligado por gfleveluser, campo gflevel_ctvdir): ver docs/BACKOFFICE-INTEGRATION.md. O resolver pode ser um class-string invocável (compatível com config:cache) ou um callable.

Configuração (config/file-manager.php)

Chave Omissão Descrição
disk public Disco do Filesystem
root conteudos Pasta base navegável
trash apagados Pasta do lixo
trash_retention_days 30 Dias até eliminação definitiva
root_resolver null Resolver da raiz por utilizador (scoping); null = acesso total
uploads.max_size 51200 (KB) Tamanho máximo por ficheiro
uploads.mimes null Mimes aceites (null = todos)
media_url route route (seguro, qualquer disco/nome) / storage (direto, mais rápido) / auto
route.middleware web, auth Middleware do gestor/upload/download
route.media_middleware web Middleware da rota de media — pública por omissão (ver conteúdo sem auth)
route.redirect_on_error dashboard Para onde redireciona se o root_resolver falhar (evita erro 500)
route.* — Prefixo, middleware e rota full-page
attachment_extensions svg, html, xml, js, php, … Tipos sempre servidos como download — impede que um SVG com <script> corra na origem da app
search.cache_seconds 10 Cache do varrimento da pesquisa (0 desliga)
audit.enabled true Regista as operações que alteram ficheiros
audit.channel null Canal de log da auditoria (null = canal por omissão da app)

Variáveis .env: FILE_MANAGER_DISK, FILE_MANAGER_ROOT, FILE_MANAGER_TRASH, FILE_MANAGER_TRASH_DAYS, FILE_MANAGER_MAX_UPLOAD, FILE_MANAGER_MEDIA_URL, FILE_MANAGER_ROUTE, FILE_MANAGER_ROUTE_PREFIX, FILE_MANAGER_SEARCH_CACHE, FILE_MANAGER_AUDIT, FILE_MANAGER_AUDIT_CHANNEL.

Nota sobre a rota de media

A rota de media é pública por omissão (route.media_middleware): quem tiver o URL vê o ficheiro, sem autenticação. Isso é deliberado — permite embeber imagens em páginas públicas — mas implica que o URL é a única barreira. O lixo e os sidecars .meta.json nunca são servidos por esta rota. Para conteúdo que não deva ser público, proteja a rota acrescentando auth a media_middleware. É esse o endereço que a ação Copiar URL coloca na área de transferência.


Funcionalidades


Correspondência Next.js → Livewire

Antigo (Next.js/React) Novo (Livewire v4)
FileManagerContext.js (estado global React) Propriedades públicas + #[Computed] em FileManager.php
FileManager.jsx (layout) resources/views/livewire/file-manager.blade.php
Files.jsx (grid/lista) partials/grid-item.blade.php, partials/list-item.blade.php
NavItem.jsx (árvore) partials/tree-node.blade.php + tree() computed
ContextMenu.jsx partials/context-menu.blade.php (Alpine)
Modal.jsx partials/modal.blade.php (Alpine)
ShowFile.jsx (lightbox) partials/lightbox.blade.php
Filters.jsx, BreadCrumbs.js toolbar na view principal + breadcrumbs()
AddFile.jsx (FAB + upload) FAB na view + wire:model="uploads" + updatedUploads()
api/files, api/files/tree FileManagerService::listing() / tree()
api/folders, api/rename, api/move createFolder() / rename() / move()
api/delete, api/delete/cleanup trash() + file-manager:prune-trash
api/upload, image/route.js upload() + MediaController (rota file-manager.media)
verify-token, TokenListener.jsx (JWT) eliminado — usa auth/sessão do Laravel
iframe + postMessage(SELECTED_FILE) <x-file-manager::picker> + evento file-manager-selected

Melhorias face à versão anterior

Integração no Backoffice Proside: ver docs/BACKOFFICE-INTEGRATION.md.


All versions of file-manager with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
illuminate/support Version ^10.0|^11.0|^12.0
illuminate/filesystem Version ^10.0|^11.0|^12.0
livewire/livewire Version ^4.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package proside/file-manager contains the following files

Loading the files please wait ...