【问题标题】:Validation on images if passing despite clear failures, why?尽管明显失败,但如果通过图像验证,为什么?
【发布时间】:2019-04-11 20:39:46
【问题描述】:

我正在使用 Laravel 5.7。我有一个名为logo 的带有文件上传的表单。我的表单有正确的enctype (enctype="multipart/form-data")。

我对@9​​87654324@ 字段有以下规则:

['required', 'image', 'dimensions:max_width=200,max_height=200']

如果我尝试上传不是图片的内容,它会失败,这是正确的。

但是,如果我尝试上传 3000x3000 像素的 jpg,这将毫无问题地通过并且文件已上传。好像我的dimensions 规则被忽略了。

我错过了什么吗?

【问题讨论】:

  • 你在表单中使用多部分数据吗?
  • 是的,enctype="multipart/form-data"。我的文件已上传,所以无论如何这都不是问题,而是我能够上传太大的图像并且忽略验证。

标签: php laravel file-upload


【解决方案1】:

我没有发现您的规则有任何问题,它已记录在案,但以防万一解析器出现问题,您是否尝试过使用:

'image' => ['required', 'image', Rule::dimensions()->maxWidth(200)->maxHeight(200)]

【讨论】:

  • 不幸的是仍然允许我上传巨大的图像
  • @Mike 你使用的是哪个版本的 Laravel,我刚刚在我的项目中尝试了你的规则,我得到了正确的错误:图片的图像尺寸无效。
  • 我使用相同的,在我的项目中似乎一切都很好。尝试另一个图像或通过打印出 sizedd(getimagesize(request()->file('image'))); 来检查 PHP 是否正确读取了数组的前两项是分辨率。
  • @mike 你试过调试我在这条评论上面所说的话吗?
【解决方案2】:

也许可以尝试使用其他类似的验证格式:

$this->validate($request, [
    'image'=> 'required|image|dimensions:min_width=200,min_height=200',
]);

祝你好运!

【讨论】:

  • 仍然允许我上传大图,一定是别的
猜你喜欢
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多