dahovitech / file-manager-bundle
Un bundle Symfony pour gérer des fichiers avec support multi-stockage
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^8.2
- league/flysystem-aws-s3-v3: ^3.0
- league/flysystem-ftp: ^3.0
- league/flysystem-google-cloud-storage: ^3.0
- oneup/flysystem-bundle: ^4.0
- symfony/framework-bundle: ^7.0
This package is not auto-updated.
Last update: 2025-05-27 16:31:26 UTC
README
Un bundle Symfony pour gérer des fichiers avec support multi-stockage, incluant les systèmes de fichiers local, FTP, AWS S3, et Google Drive. Ce bundle offre une interface utilisateur intuitive avec des fonctionnalités comme l'upload par drag-and-drop, la gestion de dossiers, et l'intégration WYSIWYG.
Fonctionnalités
- Upload de fichiers : Téléversez des fichiers (images JPEG/PNG, PDF) via un formulaire ou par drag-and-drop.
- Gestion multi-stockage : Prend en charge les stockages local, FTP, AWS S3, et Google Drive.
- Organisation par dossiers : Créez et gérez des dossiers hiérarchiques pour organiser vos fichiers.
- Filtres : Filtrez les fichiers par type, dossier, stockage, ou nom.
- Prévisualisation : Affichez des aperçus pour les images.
- Intégration WYSIWYG : Sélectionnez des fichiers pour les insérer dans un éditeur (par exemple, TinyMCE).
- Suppression sécurisée : Supprimez des fichiers avec confirmation.
Prérequis
- PHP 8.2 ou supérieur
- Symfony 7.0 ou supérieur
- Composer
- Une base de données compatible avec Doctrine (MySQL, PostgreSQL, etc.)
- Accès aux stockages configurés (FTP, AWS S3, Google Drive)
Installation
1. Installer le bundle via Composer
Puisque le dépôt est public, installez le bundle directement :
composer require dahovitech/file-manager-bundle
2. Activer le bundle
Ajoutez le bundle à config/bundles.php
:
return [ // ... Dahovitech\FileManagerBundle\FileManagerBundle::class => ['all' => true], ];
3. Configurer Flysystem
Créez ou mettez à jour config/packages/flysystem.yaml
pour configurer les stockages :
flysystem: storages: local.storage: adapter: 'local' options: directory: '%kernel.project_dir%/public/uploads' ftp.storage: adapter: 'ftp' options: host: '%env(FTP_HOST)%' username: '%env(FTP_USERNAME)%' password: '%env(FTP_PASSWORD)%' root: '/' passive: true ssl: false timeout: 30 aws_s3.storage: adapter: 'awss3v3' options: client: version: 'latest' region: '%env(AWS_REGION)%' credentials: key: '%env(AWS_ACCESS_KEY_ID)%' secret: '%env(AWS_SECRET_ACCESS_KEY)%' bucket: '%env(AWS_BUCKET)%' prefix: 'files' google_drive.storage: adapter: 'googlecloudstorage' options: client: project_id: '%env(GOOGLE_PROJECT_ID)%' key_file: '%env(GOOGLE_CREDENTIALS)%' bucket: '%env(GOOGLE_BUCKET)%'
4. Configurer les variables d'environnement
Ajoutez les variables nécessaires dans .env.local
:
# Local storage
FILE_MANAGER_UPLOAD_DIR=%kernel.project_dir%/public/uploads
# FTP
FTP_HOST=ftp.example.com
FTP_USERNAME=your_username
FTP_PASSWORD=your_password
# AWS S3
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret
AWS_REGION=us-east-1
AWS_BUCKET=your_bucket_name
# Google Drive (via Google Cloud Storage)
GOOGLE_PROJECT_ID=your_project_id
GOOGLE_CREDENTIALS=/path/to/your/service-account-key.json
GOOGLE_BUCKET=your_google_bucket
5. Mettre à jour la base de données
Générez et exécutez les migrations pour créer les tables nécessaires :
php bin/console doctrine:migrations:diff php bin/console doctrine:migrations:migrate
6. Configurer les assets
Copiez le fichier CSS dans votre dossier public :
mkdir -p public/assets/css cp vendor/dahovitech/file-manager-bundle/Resources/public/css/file-manager.css public/assets/css/
Assurez-vous que jQuery est inclus dans votre template de base (base.html.twig
) :
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
7. Accéder à l'interface
Visitez l'URL /file-manager
dans votre application Symfony pour utiliser le gestionnaire de fichiers.
Utilisation
- Upload de fichiers : Glissez-déposez des fichiers dans la zone dédiée ou utilisez le formulaire d'upload.
- Création de dossiers : Utilisez le formulaire en haut pour créer des dossiers, avec possibilité de sélectionner un dossier parent.
- Filtrage : Appliquez des filtres pour afficher des fichiers spécifiques par type, dossier, stockage, ou nom.
- Sélection pour WYSIWYG : Cliquez sur "Sélectionner" pour insérer une image dans un éditeur WYSIWYG.
- Suppression : Cliquez sur "Supprimer" pour retirer un fichier après confirmation.
Dépendances
php: ^8.2
symfony/framework-bundle: ^7.0
oneup/flysystem-bundle: ^4.0
league/flysystem-aws-s3-v3: ^3.0
league/flysystem-ftp: ^3.0
league/flysystem-google-cloud-storage: ^3.0
Licence
Ce bundle est sous licence MIT.
Contribuer
Les contributions sont les bienvenues ! Veuillez ouvrir une issue ou soumettre une pull request sur GitHub.
Support
Pour toute question ou problème, ouvrez une issue sur le dépôt GitHub.