php - 在 laravel 中验证多个文件上传数组

php - validate multiple file upload array in laravel

我有一个允许上传多个文件的文件上传输入。现在,我正在尝试找到一种方法来验证这些文件上传,但不确定如何解决。

代码示例

<input type="file" class="form-control" name="file-1649657296668-0[]" access="false" multiple="true" id="file-1649657296668-0">

假设我在此输入上载了多个文件,我该如何迭代和验证此文件输入中的每个文件并确保它通过验证检查? $request 变量无法在此文件上传输入中逐一检查每个数组。

您可以对数组项使用通配符 *

<input type="file" name="files[]" multiple>
request()->validate([
    'files' => 'required',
    'files.*' => 'mimes:jpeg,jpg,png'
]);

编辑:问题已解决。显然,在验证器检查中,我错过了输入文件名的正确格式,因为 ID 是从我的 formBuilder 自动生成的。修改了我的代码以遵循正确的格式。

输入文件名示例:file-1649657296668-0[]

例如:

validated = $request->validate([
                       'file-1649657296668-0.*' => 'max:10000|mimes:pdf,xlsx,xls,docx,doc,png,jpg,jpeg',
                    ]);

确保不要遗漏具有多个属性的输入类型文件的星号,否则它将无法验证其余文件。