如何通过文件名验证上传的文件?

时间:2019-07-08 19:08:28

标签: laravel-5 php-7.1 phpunit-testing

我有一个从Request类扩展来定制我的验证规则的文件,在该文件中,我验证了一个具有最大大小和文件名特定长度的文件类型字段。为了更简单地尝试使用

php artisan tinker

您可以重现该错误:

Validator::make(['file' => Illuminate\Http\UploadedFile::fake()
         ->create('page.pdf')],['file' => 'regex:/^.*$/'])->fails();

使用此代码,可以使用造假者动态生成一个要上传的文件,并指定一个特定的名称,然后进行验证并尝试检查文件是否失败。

所使用的正则表达式表示名称可以是具有开放尺寸的任何字符,没有限制。这应该返回false,因为它不会失败。但是,它失败了。

要知道我对正则表达式是否满意,可以使用:

preg_match('/^.*$/', 'page.pdf');

在我的情况下,它返回1表示它找到了匹配项,因为文档表明1是它找到了匹配项,0表示没有找到匹配项,并且错误地指出发生了错误。

在单元测试中使用regex和Laravel验证UploadedFile时,我会怎么做?

0 个答案:

没有答案