我在Laravel 5.5中创建API,此API支持接收配置文件图片等的一些文件。
我想通过表单请求限制此操作仅接受 JPG 和 PNG 图片,并且我设置了我的表单请求如下:
'picture' => 'nullable|image|mimetypes:image/jpeg,image/png,image/jpg|max:2000' // 2000KB or around 2MB per picture
然后,在我的PHPUnit / Codeception测试中,我使用Laravel自己的fake
静态方法发送假图像,如下所示
'picture' => UploadedFile::fake()->image("hello.svg")
如果i DD运行测试时正在发送的图像文件,它会正确地将其 MIMEType 列为image/svg+xml
,但不知何故,这会通过验证并出来另一端并不应该是这种情况,因为我的规则应该仅限制PNG或JPG文件。
还有其他人有这个问题吗?
答案 0 :(得分:1)
确保您的表单具有属性 enctype =“multipart / form-data”
您可以在此处阅读enctype属性:What does enctype='multipart/form-data' mean?
答案 1 :(得分:0)
你写了错误的语法来验证图片验证中的图片类型。
你只需要像这样创建图片验证:
'picture' => 'nullable|image|mimes:jpeg,png|max:2000'