DcatAdmin 图片上传只支持png的问题
问题描述
DcatAdmin版本: 2.2.2
1.表单上传图片代码
$form->image('litpic')->accept('jpg,png,gif,jpeg','image/*')->autoUpload();
2.在表单中使用图片上传,上传png可以成功,jpg,jpeg都失败。提示:
{"status":false,"data":{"message":"validation.image","type":"error"}}
分析问题
应该是被上传验证数据规则拦截,需要配置验证规则,可查看文档,没有哪里说要配置初始化的规则规则,为了能支持jpg,加了 accept(‘jpg,png,gif,jpeg’,’image/*’)
可还是提示 相同的错误。
不得以只能追踪 DcatAdmin 的源代码,暂时先把上传文件验证去掉,先开发完其它功能再说,后面再来分析是自己的问题,还是DcatAdmin 上传图片组件的问题。
文件路径:vendor/dcat/laravel-admin/src/Form/Field/UploadField.php (191行)
注释掉的代码:
if ($errors = $this->getValidationErrors($file)) {
return $this->responseValidationMessage($errors);
}
帮助
希望有知道解决方法的同学,给个提示。感谢。
本作品采用《CC 协议》,转载必须注明作者和本文链接
$form->image
组件的后端验证是写死的,accept
方法仅仅是对前端的webuploader
做设置,并不影响后端的验证,参考这篇文章的回答对后端验证作修改 问答:dcat-admin表单 上传avif格式的图片报错