From cc94311cdedc106f32bc240bfa6236ac0179a333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr> Date: Thu, 3 Dec 2015 09:28:01 +0100 Subject: [PATCH] =?UTF-8?q?Ajoute=20d'une=20m=C3=A9thode=20pour=20comparer?= =?UTF-8?q?=20rapidement=20le=20contenu=20de=20deux=20fichiers.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Entity/UploadedFile.php | 10 ++++++++++ Model/UploadedFileInterface.php | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/Entity/UploadedFile.php b/Entity/UploadedFile.php index 8b9df5ea..1a8c0ee9 100644 --- a/Entity/UploadedFile.php +++ b/Entity/UploadedFile.php @@ -687,4 +687,14 @@ class UploadedFile implements UploadedFileInterface $this->actualPath = $this->path; } + /** + * {@inheritdoc} + * + * Ne compare que la taille et la somme de contrôle : il existe une très faible probabilité que deux fichiers de + * même taille et même checksum soient différents. + */ + public function hasSameContent(UploadedFileInterface $other) + { + return $other->getSize() === $this->getSize() && $other->getChecksum() === $this->getChecksum(); + } } diff --git a/Model/UploadedFileInterface.php b/Model/UploadedFileInterface.php index 324b9708..ce2f423a 100644 --- a/Model/UploadedFileInterface.php +++ b/Model/UploadedFileInterface.php @@ -381,4 +381,14 @@ interface UploadedFileInterface * @internal */ public function toArray(); + + /** + * Détermine si ce fichier a le même contenu qu'un autre fichier. + * + * @param UploadedFileInterface $other + * @return bool True si les deux fichiers ont le même contenu. + * + * @api + */ + public function hasSameContent(UploadedFileInterface $other); } -- GitLab