Laravel7 : 验证上传的文件

Laravel7 : Validate uploaded files

我有一个从用户那里获取文件的表单,我使用以下规则验证文件格式:

$valid = validator($request->only(['files'],[
    'files' => ['nullable', 'array'],
    'files.*' => ['mimes:zip,rar,jpeg,jpg,png,txt,doc,docx,pdf','max:25600']
]);

如您所见,我说过也接受文本文件。但我只想接受 text/plain 个文件。 但是例如,它也接受 Python 个文件,因为它们是 text/x-python。 我什至将 mimes.php 文件添加到 config 文件夹中,并将以下代码放入其中。但它仍然接受 Python 个文件。

// config/mimes.php

<?php

return [
    'txt' => ['text/plain']
];

使用 mimetypes 规则而不是 mimes。这样您就可以将规则指定为:

$validated = request()->validate([
  'files.*' => ['mimetypes:text/plain, ... '],
]);

参考:Laravel Documentation