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

Flask多文件上传校验是否选文件报AttributeError如何解决

错误原因

你触发报错的核心原因是 flask.request.files.getlist("file[]") 返回的是所有上传文件对象组成的Python列表,列表本身没有filename属性。你查到的通用教程对应的是「单文件上传」场景,单文件上传时使用request.files.get("文件名")获取到的是单个文件对象,才有filename属性,和你当前开启multiple的多文件上传场景不匹配。

正确校验方式

多文件上传场景分两步校验即可:

  • 先判断文件列表是否为空,确认用户有没有选择文件
  • 遍历文件列表时,逐个校验单个文件的filename是否合法,避免无效空文件

修改后的代码示例

你只需要调整upload路由的逻辑即可:

@app.route("/upload", methods=["POST"])
def upload():
    files = flask.request.files.getlist("file[]")
    # 列表为空说明用户未选择任何文件
    if not files:
        # 此处可自行添加无文件上传的提示逻辑
        return get_html("index")
    # 遍历逐个校验+保存
    for file in files:
        if file.filename != '':
            # 可选优化:提前判断上传目录是否存在,避免路径不存在报错
            os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
    return get_html("index")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:09:02