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

Flask官方文件上传示例访问/uploads路由返回404问题

问题原因

你的404问题核心是硬编码的相对上传目录路径不可靠:
你写的UPLOAD_FOLDER = 'flask/uploads'是相对路径,解析时完全依赖你启动Flask服务时终端所在的工作目录。如果你是进入flask文件夹后执行python index.py启动服务,程序会去当前工作目录(也就是flask文件夹本身)下找flask/uploads子目录,这个路径实际不存在,send_from_directory找不到目标文件就会返回404。

修复步骤
  1. 替换硬编码的相对路径,用基于脚本位置的绝对路径,彻底避免工作目录变化导致的路径错误
    修改index.py里的路径配置部分:

    import os
    from flask import Flask, request, redirect, url_for, flash
    from werkzeug.utils import secure_filename
    
    # 获取当前index.py文件所在的绝对目录
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    # 拼接得到uploads文件夹的绝对路径
    UPLOAD_FOLDER = os.path.join(BASE_DIR, 'uploads')
    ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}
    
    app = Flask(__name__)
    # flash功能需要密钥,补上避免运行报错
    app.config['SECRET_KEY'] = 'your-custom-secret-key'
    app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
    # 自动创建uploads文件夹,避免漏建文件夹导致的错误
    os.makedirs(UPLOAD_FOLDER, exist_ok=True)
    

    其余业务逻辑代码不需要改动。

  2. 验证修复

    • 停掉之前运行的Flask服务,重新启动
    • 上传测试文件后,先打开本地的flask/uploads目录,确认文件确实被保存到了这个目录下
    • 再访问跳转后的/uploads/文件名地址,就可以正常访问到上传的文件,不会再返回404。

注意:不要手动拼接路径字符串,全程用os.path.join()处理路径,避免Windows、macOS/Linux系统路径分隔符不一样导致的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:18:20