]> BookStack Code Mirror - bookstack/blobdiff - app/Exports/ZipExports/ZipFileReferenceRule.php
ZIP Imports: Added image type validation/handling
[bookstack] / app / Exports / ZipExports / ZipFileReferenceRule.php
index 7d6c829cf037c78242bc79725c1ead3f82f7d054..90e78c060b03a8d2f97b4d5579b4c936ff444195 100644 (file)
@@ -9,6 +9,7 @@ class ZipFileReferenceRule implements ValidationRule
 {
     public function __construct(
         protected ZipValidationHelper $context,
+        protected array $acceptedMimes,
     ) {
     }
 
@@ -21,5 +22,16 @@ class ZipFileReferenceRule implements ValidationRule
         if (!$this->context->zipReader->fileExists($value)) {
             $fail('validation.zip_file')->translate();
         }
+
+        if (!empty($this->acceptedMimes)) {
+            $fileMime = $this->context->zipReader->sniffFileMime($value);
+            if (!in_array($fileMime, $this->acceptedMimes)) {
+                $fail('validation.zip_file_mime')->translate([
+                    'attribute' => $attribute,
+                    'validTypes' => implode(',', $this->acceptedMimes),
+                    'foundType' => $fileMime
+                ]);
+            }
+        }
     }
 }