libriciel / file-validator
Permet de vérifier la validité d'un fichier
Package info
gitlab.adullact.net/Libriciel/archivage/file-validator.git
pkg:composer/libriciel/file-validator
Requires
- php: ^7.4 || ^8.1
- ext-dom: *
- ext-fileinfo: *
- ext-json: *
- phpoffice/phppresentation: ^0.9.0
- phpoffice/phpspreadsheet: @beta
- phpoffice/phpword: ^0.13.0
Requires (Dev)
- libriciel/file-validator-tests: dev-master
- phpunit/phpunit: ~8.5.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Contrôle de l'intégrité des fichiers (audio, vidéo, images, PDF, bureautique, archives, XML, JSON) selon leur format identifié par siegfried.
Dépendance de
| Projet | Build | Coverage |
|---|---|---|
| asalae | ||
| asalae-core | ||
| file-converters |
Prérequis
- PHP
^7.4 || ^8.1avec les extensionsdom,fileinfo,json - Outils système :
sf(siegfried) : identification du format (PUID PRONOM)- puis, selon le format :
- audio, vidéo :
ffmpegetmediainfo - images :
identify(paquetimagemagick) - PDF :
pdfinfo(paquetpoppler-utils) - bureautique :
catdoc,xls2csvetcatppt(paquetcatdoc),xlsx2csv - XML :
xmllint(paquetlibxml2-utils) - archives :
zip,gzip,bzip2,tar,rar
- audio, vidéo :
Installation
composer require libriciel/file-validator:dev-master
Utilisation
Utility
FileValidator\Utility\FileValidator::check($filename) identifie le format du fichier (PUID PRONOM via siegfried, à défaut extension et type mime) puis lance les contrôles associés à ce format ; le fichier est valide si l'un d'eux réussit.
config/validations.php: contrôles par PUID (fmt/…), chargés au démarrage ;loadConfig()permet d'en charger une autre$allowNonFatalError(vrai par défaut) : tolère les erreurs non bloquantes$displayErrors: affiche les erreurs rencontrées (débogage)
src/Worker/FileValidationWorker.php (asalae-core)
$isValid = FileValidator::check($data['path']);
$this->io->out(
__(
"Le test de validation du fichier {0} a été effectué. son résultat est : {1}",
$data['name'],
($isValid ? 'valide': 'invalide')
)
FileValidator\Utility\FileCorruptor : produit une version corrompue d'un fichier (lowLevelCorruption(), highLevelCorruption()), pour les tests.
tests/TestCase/FileCorruptorTest.php
file_put_contents($filename, FileCorruptor::lowLevelCorruption($filename));
Tests
Les fichiers d'exemple viennent de file-validator-tests (require-dev).
vendor/bin/phpunit