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);
 }