Version 1
[yaffs-website] / web / core / modules / file / src / Plugin / Validation / Constraint / FileValidationConstraintValidator.php
diff --git a/web/core/modules/file/src/Plugin/Validation/Constraint/FileValidationConstraintValidator.php b/web/core/modules/file/src/Plugin/Validation/Constraint/FileValidationConstraintValidator.php
new file mode 100644 (file)
index 0000000..972aa69
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+
+namespace Drupal\file\Plugin\Validation\Constraint;
+
+use Symfony\Component\Validator\Constraint;
+use Symfony\Component\Validator\ConstraintValidator;
+
+/**
+ * Checks that a file referenced in a file field is valid.
+ */
+class FileValidationConstraintValidator extends ConstraintValidator {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validate($value, Constraint $constraint) {
+    // Get the file to execute validators.
+    $file = $value->get('entity')->getTarget()->getValue();
+    // Get the validators.
+    $validators = $value->getUploadValidators();
+    // Checks that a file meets the criteria specified by the validators.
+    if ($errors = file_validate($file, $validators)) {
+      foreach ($errors as $error) {
+        $this->context->addViolation($error);
+      }
+    }
+  }
+
+}