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

Flask文件上传调用save方法报IsADirectoryError错误如何解决

问题根因

你对Flask中FileStorage对象的save()方法参数理解有误,该方法仅接受1个必填的完整目标文件路径作为参数,第二个可选参数是读写缓冲区大小,并非你以为的「存储目录+文件名」两个独立参数。
你现有代码的括号位置写错:

file.save(os.path.join(app.config['UPLOAD_FOLDER']),file_name)

上述代码中os.path.join()仅传入了上传目录一个参数,返回值就是目录本身,相当于把目录路径直接传给save()作为存储路径,自然会触发IsADirectoryError报错。

修复方案

把文件名参数放到os.path.join()的括号内部,拼接出完整的目标文件路径后再传给save()即可:

file.save(os.path.join(app.config['UPLOAD_FOLDER'], file_name))

额外优化建议

可以在程序初始化阶段先判断上传目录是否存在,不存在就自动创建,避免后续出现目录不存在的报错:

import os
UPLOAD_FOLDER = os.path.join(os.getcwd() + '/EmailApp', 'attachments')
# 自动创建不存在的上传目录
if not os.path.exists(UPLOAD_FOLDER):
    os.makedirs(UPLOAD_FOLDER)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:03