繁体   English   中英

Flask 文件上传限制

[英]Flask file upload limit

我有一个用于多个文件上传的文件上传处理程序,并设置了 MAX_CONTENT_SIZE。 文档提到当总文件大小超过限制时 Flask 会抛出 413 异常,因此我还编写了一个带有自定义 413 页面的 413 错误处理程序。 但是,在测试文件上传时,我可以看到确实抛出了 413 错误,但是连接似乎每次都断开而不是呈现我的错误页面。 仅供参考,我目前正在使用 Flask 开发服务器。

代码:

app.config['MAX_CONTENT_LENGTH'] = 50 * 1024 * 1024    # 50 Mb limit

@app.route('/upload', methods=['POST'])
def upload_files():
    if request.method == 'POST':
       uploaded_files = request.files.getlist('uploaded_files[]')

       # do some stuff with these files



@app.errorhandler(413)
def error413(e):
    return render_template('413.html'), 413

更新:

好吧奇怪,这个问题似乎只有在使用 Flask 开发服务器时才会出现。 我正在 Apache 上测试它,我的 413 错误页面显示正常。

使用生产 WSGI 服务器将解决这个问题(例如GunicornWaitress )。 下面是这个问题的简单时间表。

2015年

在 Armin Ronacher 发布的这个片段(消失)中,他说:

您可能会注意到,如果在传入的 POST 请求中开始不访问 .form 或 .files,某些浏览器将通过连接重置消息来实现这一点。 如果您开始拒绝大于给定大小的上传,就会发生这种情况。

一些 WSGI 服务器为您解决了这个问题,而另一些则没有。 例如,内置的 Flask 网络服务器非常愚蠢,不会尝试解决这个问题。

2018年

我在 Flask 的文件上传文档( flask #2662添加了一个提示:

连接重置问题

使用本地开发服务器时,您可能会收到连接重置错误而不是 413 响应。 使用生产 WSGI 服务器运行应用程序时,您将获得正确的状态响应。

2021年

我认为/希望它会在不久的将来在 Werkzeug 中得到修复( werkzeug #1513 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM