基于 Laravel 框架开发 图片上传 Api,FormRequest 中配置表单验证值为 “required|image”,前端多次上传有成功也有失败的情况

在实际项目开发中,常常会遇到很多疑惑的问题,本次对于 图片上传接口的问题定位,经过多次排查,基本上锁定在图片大小上,通过系统功能表单验证类抛出的422异常:The file failed to upload.,通过查看 resources/lang/en/validation 文件可以看到,实际框架层调用的是 uploaded 验证。

查看测试服务器 php 系统版本,php -i 查看系统配置项,当前服务器 php 版本是 7.2.*,当前服务器是 ubuntu 系统, 通过 apt-get 安装的 php 环境,php 默认 upload_max_filesize=2M ,以及 post_max_size=8M, 修改其合适的限制大小后,图片上传问题成功解决。

在实际开发过程中,还是建议限制图片上传的大小,比如表单验证值可改为 “require|image|max:20000”,限制图片最大不能超过20M,不过最终还是要结合实际需求为准。