Flask - 上传的图像未显示 - 返回404

2 投票
1 回答
1031 浏览
提问于 2025-04-18 11:30

抱歉问了个小白问题,我也找这个答案找了很久。其实我看过文档,地址是 http://flask.pocoo.org/docs/patterns/fileuploads/,而且我也按照上面的步骤做了。

我成功上传了图片,现在这张图片在下面这个文件夹里:

/myfirstflask
    /myapp
        /static
        /templates
        routes.py
        ...
    /uploads
        myimage.jpg

很好,现在我想通过在我的路由中实现这个功能来获取这张图片:

@app.route('/media/<path:filename>')
def media(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

顺便说一下,app.config['UPLOAD_FOLDER'] 是 'uploads/'。在我渲染的一个 HTML 模板中,我有这个:

<img src="{{url_for('media', filename = 'myimage.jpg')}}"/>

但是图片返回了404找不到的错误,我到底哪里出错了呢?

我尝试了一下,把整个 'uploads' 文件夹复制到 'myapp' 文件夹里,这样就能正常工作了!但是当我把 'myapp' 文件夹外面的 'uploads' 文件夹删掉后,就又出现了404错误。看起来好像需要这个上传的文件夹存在……这感觉有点奇怪,不太对劲。

1 个回答

1

“uploads/”文件夹应该放在你Flask应用的根目录下,也就是在你的情况下是“/myapp”这个文件夹里。

撰写回答