Flask使用WTForms实现图片上传时无法识别上传文件的问题求助
问题排查及修复方案
你代码里存在3个需要修正的问题,按优先级排序如下:
- 核心问题:表单缺失文件上传必须的编码类型声明
浏览器上传文件时要求表单明确指定编码格式为multipart/form-data,否则不会传递文件内容,直接导致后端拿不到图片。
修复方式:把HTML里的form标签修改为:<form method="POST" action="{{url_for('upload')}}" enctype="multipart/form-data"> - 表单验证逻辑写法错误
validate_on_submit是类的调用方法,需要加括号执行,你当前的写法是直接判断方法对象是否存在,永远返回True,不符合表单验证的预期。
修复方式:把路由里的判断语句修改为:if form.validate_on_submit(): - 模板冗余代码
{{ form.hidden_tag() }}已经自动包含了CSRF令牌的输出,不需要再额外写{{ form.csrf_token }},可以直接删掉该行冗余代码。
修改完成后重新运行项目即可正常获取上传的图片文件。
内容的提问来源于stack exchange,提问作者kwa
相关产品推荐
相关产品推荐

