You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django REST Framework上传图片出现MultiValueDictKeyError: 'files'错误求助

问题原因排查

1. 405 方法不允许错误

该错误由错误的请求方法触发,你首次请求/scanner/batch-upload/接口使用了GET方法,但该上传接口仅支持POST请求,因此直接返回405状态码。

2. 500 MultiValueDictKeyError 错误

该错误是修改为POST请求后触发的核心异常,报错点位于accounts/views.py第336行的file_path = request.FILES['files'].read()代码。Django无法从请求的文件字典中读取到files对应的键值,说明请求端上传文件时要么没有携带文件参数,要么上传文件的字段名不是files,或是请求头配置错误导致Django未识别到文件内容。


修复方案
  • 所有上传请求统一使用POST方法,禁止用GET请求调用文件上传接口
  • 检查请求配置:
    • 必须将请求头Content-Type设置为multipart/form-data,否则Django不会把提交的文件解析到request.FILES中
    • 上传文件对应的表单字段名必须设置为files,和后端代码读取的键名完全一致
  • 可添加参数校验逻辑避免直接抛出500错误,参考代码:
if 'files' not in request.FILES:
    return Response({"error": "缺少必填的files文件参数"}, status=400)
file_obj = request.FILES['files']
# 后续处理文件逻辑

内容的提问来源于stack exchange,提问作者Kamran arshad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:24:05