Drupal 9 Webform含文件元素时提交异常求助
检查文件元素权限与配置
先确认站点权限里给对应角色开了创建文件、编辑自己的文件权限;再看Webform文件元素的设置,比如允许的文件类型有没有填(别留空)、文件大小限制是否合理,避免因验证规则不合法导致提交被拦截但前端没提示。排查浏览器控制台的JS报错
按F12打开浏览器控制台,提交表单时看有没有红色报错。大概率是主题或自定义模块的JS和Webform的文件上传脚本冲突,比如阻止了表单默认提交事件。另外检查表单的enctype属性是不是multipart/form-data——带文件上传的表单必须有这个属性,要是被自定义代码改掉了,肯定提交不了。查看服务器端日志与验证错误
去Drupal日志页面(/admin/reports/dblog)找提交时的错误记录,比如sites/default/files/webform目录没写权限,或者PHP的upload_max_filesize、post_max_size配置太小,导致文件上传失败。还可以在Webform设置里开启显示所有验证错误,强制展示隐藏的验证提示。排查模块冲突
临时禁用所有非核心模块,尤其是和文件、表单相关的(比如File Entity、Media),然后逐个重新启用,看哪个模块导致冲突。同时确保Webform是最新稳定版,旧版本可能存在文件元素提交的已知bug。清空缓存
先清空Drupal后台的所有缓存(/admin/config/development/performance),再清空浏览器缓存——旧的JS或HTML缓存经常会导致这类奇怪的提交问题。
内容的提问来源于stack exchange,提问作者DragusPatrick

