Apache 允许将太大的文件发送到服务器(与配置相矛盾)

Apache allows too big files to be send to the server (in contradiction to configuration)

我通过 POST 实现 Ajax 文件上传到我的 json-API 使用 PHP7/Apache2.

服务器上的文件上传设置为:

upload_max_filesize = "50M"
post_max_size = "50M"

我是这样操作的,用户确实不能上传超过50M的文件。但是,他们仍然可以向服务器发送多个千兆字节大小的文件,并且服务器将

a) try to allocate that much disk space to place the file in the /tmp folder

b) try to allocate that much memory during file upload

是否可以让Apache在超过各自限制的情况下直接取消文件上传? (50M)

在不将其编码到网站软件本身的情况下执行此操作的最简单方法是在网站的 Apache 配置文件中使用 LimitRequestBody 指令。

例如,如果您的网站有所有上传到 /var/www/uploads,您可以将此添加到您的配置文件:

<Directory "/var/www/uploads">
    LimitRequestBody 52428800
</Directory>

这会将上传限制为 52428800 字节,即 50MB。

记得在修改配置文件后到reload/restart Apache,否则要等到下次服务器重新启动时才会应用此规则。