我通过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米(
在不将其编码到网站软件本身的情况下,最简单的方法是在网站的Apache配置文件中使用LimitRequestBody
指令。
例如,如果您的网站将所有上传内容都发送到/var/www/uploads
,您可以将其添加到您的配置文件中:
<Directory "/var/www/uploads">
LimitRequestBody 52428800
</Directory>
这将限制上传52428800字节,即50MB。
请记住在修改配置文件后重新加载/重新启动Apache,否则在下次重新启动服务器之前不会应用此规则。