阡陌 发表于 2024-1-6 18:17:50

PHP 附件大小限制的修改


在 PHP 中设置附件大小限制,可以通过以下两种方式实现:

## 修改 php.ini 文件

在 php.ini 配置文件中,可以修改 `post_max_size` 和 `upload_max_filesize` 两个参数来分别限制 POST 数据和上传文件的大小。

**这两个参数的区别:**

1. **post_max_size**:
   - 这个参数定义了通过 POST 方法(例如表单提交)可以上传到服务器的数据的最大大小。
   - 如果上传的文件大于这个值,服务器会返回一个错误。
   - 这个限制包括了所有的 POST 数据,不仅仅是文件上传。例如,如果你在表单中填写了一些文本字段,这些数据也会被计入 `post_max_size` 的限制。
2. **upload_max_filesize**:
   - 这个参数定义了通过 HTTP POST 方法上传的单个文件的最大大小。
   - 这是对文件上传的限制,不包括其他非文件数据。
   - 如果上传的文件超过了此限制,服务器会返回一个错误。

**总结**:

- `post_max_size` 是对整个 POST 数据(包括文件和其他表单字段)的限制。
- `upload_max_filesize` 是对单个上传文件的限制。

为了确保文件上传的正常工作,通常建议:

- `post_max_size` 应该大于或等于 `upload_max_filesize`。
- `post_max_size` 可以设置为更大的值以允许更多的其他 POST 数据。

例如:

```
post_max_size = 64M
upload_max_filesize = 32M
```

这里将 POST 数据限制为 64MB,上传文件限制为 32MB。

需要注意的是,修改 php.ini 文件需要重启 Web 服务器才能生效。


## 使用 ini_set 函数

在 PHP 脚本中,也可以使用 `ini_set` 函数动态地修改上传文件大小限制。例如:

```
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '32M');
```

这里同样将 POST 数据限制为 64MB,上传文件限制为 32MB。

需要注意的是,在使用 ini_set 函数时,必须在 PHP 脚本执行的早期调用该函数,否则可能无法生效。这些设置只对当前脚本有效,并不会影响 PHP 的全局设置或其它脚本。另外,某些操作系统和 Web 服务器可能会对 ini_set 函数进行限制,需要进行相应的配置或授权。


页: [1]
查看完整版本: PHP 附件大小限制的修改