php - 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公尺)
解决方案
在不将其编码到网站软件本身的情况下执行此操作的最简单方法是使用LimitRequestBody
站点的 Apache 配置文件中的指令。
例如,如果您的网站所有上传到/var/www/uploads
,您可以将其添加到您的配置文件中:
<Directory "/var/www/uploads">
LimitRequestBody 52428800
</Directory>
这会将上传限制为 52428800 字节,即 50MB。
请记住在修改配置文件后重新加载/重新启动 Apache,否则在下次服务器重新启动之前不会应用此规则。
推荐阅读
- refresh - Excel Power Query 数据加载太慢
- stylecop - 使用 Stylecop.Analyzer 为项目创建可自定义的规则集
- java - 继承练习
- snowflake-cloud-data-platform - 为什么两个字符串不匹配,尽管它们完全相同?
- reactjs - CoreUI React.js 管理模板 [CDataTable] 过滤嵌套对象
- stata - Coefplot 彼此相邻
- python - Flask 视图装饰器和流式内容
- java - Java - 使用 HmacSHA384 散列并使用 HexDigest 进行编码
- sql-server - 从 Microsoft 的文档中删除 MS SQL Server 锁定行为的困惑
- python - 如何通过在python中导出新的numpy数组来替换现有的csv文件