Flask 文件上传限制

2023-11-27

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

Code:

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

UPDATE:

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


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

2015

In 这个片段Armin Ronacher 发布的帖子中,他说:

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

一些 WSGI 服务器可以为您解决该问题,而其他服务器则不能。例如,内置的 Flask 网络服务器非常愚蠢,不会尝试解决这个问题。

2018

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

连接重置问题

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

2021

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask 文件上传限制 的相关文章

随机推荐

  • 为什么我的 php substr() 在剪切文本时显示模糊字符?

    我正在使用substr 函数限制字符串中的字符 但有时 输出文本包含一些晦涩的字符和问号等 substred 的文本已经是 UTF8 编码的 而不是在 html 实体中出现这样的问题 Thanks 因为你正在把你的角色切成两半 Use mb
  • 需要为 EmptyStacks 创建一个新的 RunTimeException

    所以我的任务可能听起来很简单 但它让我感到困惑 我已经浏览了互联网上的代码 但我无法掌握 我也不行 掌握老师发布的幻灯片 这就是对我的要求 创建一个名为 EmptyStackException 的新运行时异常类型 然而我不知道如何制作方法
  • 如何使用元对象协议向对象添加属性?

    我试图回答this问题 并认为我可以使用元对象协议向类添加属性 这是一个我尝试添加属性的最小示例test到班级Configuration施工后 use v6 class Configuration my config Configurati
  • 核心数据中的索引关系

    我刚刚开始在 iPhone SDK 上使用 Core Data 并且正在考虑保存有序列表 例如数组 然而 核心数据中的关系在检索时表示为集合 这使得保存对象的放置顺序变得困难 一个很好的例子是允许对项目进行重新排序时表视图中的数据项目 一个
  • JSF生成的HTML元素ID是变化的,如何将其设置为固定的元素ID?

    我有一个 JSF 输入文本组件 其 id 为search 在生成的 HTML 输出中 它看起来像这样j idt17 search 但是数量17正在不时发生变化 怎样才能让它保持一成不变呢 给生成 HTML 元素的 JSF 组件id j id
  • install_name_tool -change 和 -id 之间的区别

    我已经在这个概念上苦苦挣扎了一段时间 我无法真正理解两者之间的区别 change and id 手册页指出 id name Changes the shared library identification name of a dynami
  • 滚动我自己的@Html.BeginfOrm()

    我正在编写一个自定义验证集 它将显示 div 上所有缺失的元素 我希望能够使用自定义 Html BeginForm 方法将写出该 div 但我真的不知道从哪里开始 因为这个坚果比写出标签或字符串的 html 扩展更难破解 表单封装了数据 控
  • 差异算法

    有人可以推荐一些关于 XML 的基于树的 diff 算法的论文 文献 或代码片段 基于 DOM 树 非常感谢 这是一篇关于相同内容的有用论文 http pdf aminer org 000 301 327 x diff an effecti
  • 将 props 传递给 Material UI 样式

    鉴于Card代码如here 如何更新卡片样式或任何材质 UI 样式 const styles theme gt card minWidth 275 对此如下 const styles theme gt card minWidth 275 b
  • Heroku 中使用 OpenCV 的 Python Web 应用程序

    我正在构建一个在后端使用 OpenCV 的 Web 应用程序 我已经在 Ubuntu 上构建了该应用程序 我也在 Windows 上尝试过 并且运行良好 目前 我正在尝试配置 OpenCV 以在 Heroku 上工作 由于无法使用 pip
  • 在 DataFrame.groupby 的情况下,如何根据另一列的最大值获取一列的值

    我有一个看起来像这样的数据框 id YearReleased Artist count 168 2015 Muse 1 169 2015 Rihanna 3 170 2015 Taylor Swift 2 171 2016 Jennifer
  • AngularJS 组复选框验证

    我有一个复选框列表 其中至少有一个是必填的 我尝试通过 AngularJS 验证来实现这一点 但遇到了困难 下面是我的代码 Code goes here for js var app angular module App function
  • C++ 是否可以计算出整个向量? [复制]

    这个问题在这里已经有答案了 我需要计算一个向量 不仅仅是其中的一个元素 而是整个事物 例如 std cout 您可以定义一个实用函数 例如 template
  • 64 位 Windows 上 long 的位大小是多少?

    不久前 有人告诉我long在 64 位机器上不是 64 位 我应该始终使用int 这对我来说没有意义 我看过文档 例如苹果官方网站上的文档 说long为 64 位 CPU 编译时确实是 64 位 我查了一下 64 位 Windows 上的内
  • 在 Emacs 中,如何使用键盘选择完成列表?

    当我在迷你缓冲区中按 Tab 键完成并且 Emacs 在新缓冲区中显示完成列表时 如何在不使用鼠标的情况下切换到该缓冲区 I tried C x o 但这只是切换到第一个缓冲区 我从中进入了迷你缓冲区 我也尝试过C x b 但这给了我com
  • 如何使用 npm 脚本重命名文件

    我在用复制文件作为一个 npmscirpt copyfiles u 2 src app conf dev json dist config 但最后我想把文件重命名 如何将输入文件重命名为类似的名称conf json 我检查了文档 没有发现可
  • 带定时器的 Windows 服务

    我在 c net 中创建了一个带有计时器的 Windows 服务 当我在 Visual Studio 中调试 构建项目时它工作正常 但安装后它不执行其操作 这背后的原因可能是什么 代码 public partial class Servic
  • 添加包含数字列的分箱值的列

    我有一个包含几列的数据框 其中一列是排名 是 1 到 20 之间的整数 我想创建另一列 其中包含 bin 值 如 1 4 5 10 11 15 16 20 最有效的方法是什么 我的数据框看起来像这样 csv 格式 rank name inf
  • 了解 WebElement.findElement() 和 XPATH

    我想使用WebElement findElement 使用 XPATH 定位父节点内节点的 API span class child class 我以为这会让我归还 div 那是在父级内部 然而 它返回了我在整个 DOM 树中找到的第一个
  • Flask 文件上传限制

    我有一个用于多个文件上传的文件上传处理程序 并设置了 MAX CONTENT SIZE 文档提到当总文件大小超过限制时 Flask 会抛出 413 异常 因此我还使用自定义 413 页面编写了 413 错误处理程序 但是 在测试文件上传时