diff --git a/Entity/UploadedFile.php b/Entity/UploadedFile.php index 8b9df5ea4599f2954f82a26068da5da14835e905..1a8c0ee924a951692c00ee87c53e5b58231dae57 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 324b97082f5f21221f54c23e7fef4d6b1dda5103..ce2f423a8cf47fc47fb06dd79c9a9e752a8b88b7 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); }