首页 > 解决方案 > Apache 允许将太大的文件发送到服务器(与配置相矛盾)

问题描述

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

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

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 取消文件上传?(50公尺)

标签: phpfile-uploadapache2

解决方案


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

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

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

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

请记住在修改配置文件后重新加载/重新启动 Apache,否则在下次服务器重新启动之前不会应用此规则。


推荐阅读