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

如何在Python Flask项目中接收前端上传的txt文件并读取内容

你现在的代码存在两个核心问题,对应修改方法如下:

1. 调整HTML表单配置

默认表单提交格式仅能传输普通文本字段,无法传递文件内容,需要给<form>标签添加enctype="multipart/form-data"属性,修改后代码如下:

<div class="file_input">
    <form action="." method="POST" enctype="multipart/form-data">
        <input type="file" name="txt_file"> 
        <input type="submit" name="submit_form">
    </form>
</div>

2. 修改Flask端文件读取逻辑

Flask中上传的文件对象不会存放在request.form中,需要通过request.files读取,无需调用本地open方法,直接从上传的文件对象中读取内容即可,修改后代码如下:

@app.route('/')
@app.route('/landing')
def landing():
    return render_template('index.html', PageTitle = "Landing page")

@app.route('/', methods = ['POST'])
def test():
    # 获取上传的文件对象
    txt_file = request.files.get('txt_file')
    # 基础校验:判断是否上传了有效文件
    if not txt_file or txt_file.filename.strip() == '':
        return "未上传有效txt文件"
    # 读取文件内容并解码为字符串
    book_str = txt_file.read().decode('utf-8')
    return book_str

原代码问题说明

你之前用request.form['txt_file']拿到的仅为表单传递的文件名字符串,调用open方法是尝试在服务器本地打开与上传文件同名的本地文件,自然无法读取用户上传的文件内容,只会返回文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 23:57:00