Browse Source

启用兼容性更好的文件后缀验证

moell 9 tháng trước cách đây
mục cha
commit
0a9ef7436f
1 tập tin đã thay đổi với 9 bổ sung1 xóa
  1. 9 1
      app/Http/Requests/API/File/KeepDirectoryUploadRequest.php

+ 9 - 1
app/Http/Requests/API/File/KeepDirectoryUploadRequest.php

@@ -4,6 +4,7 @@ namespace App\Http\Requests\API\File;
 
 use App\Models\Enums\FileObjectType;
 use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Http\UploadedFile;
 use Illuminate\Validation\Rules\Enum;
 use Illuminate\Validation\Rules\File;
 
@@ -46,7 +47,14 @@ class KeepDirectoryUploadRequest extends FormRequest
             $extensions = [...$extensions, ...config("bim.extensions")];
         }
 
-        //$rules['files.*'][] = File::types($extensions)->max("2gb"); // 临时关闭,无法校验rvt文件后缀
+        $rules['files.*'] = [
+            File::default()->max("2gb"),
+            function ($attribute, UploadedFile $value, $fail) use ($extensions) {
+                if (! in_array($value->getClientOriginalExtension(), $extensions) && !in_array($value->getExtension(), $extensions)) {
+                    $fail(sprintf("Please select the correct file, the following files are supported: %s", implode(",", $extensions)));
+                }
+            }
+        ];
 
         return $rules;
     }