我正在尝试上传更大的文件,所以我在 php 代码中设置了这个
ini_set('upload_max_filesize', '1000M');
ini_set('post_max_size', '1100M');
ini_set('memory_limit', '1200M');
但是 $_POST 和 $_FILES 是空的。但是当我更改 php.ini 设置时,它可以工作。为什么它不会即时更改设置?
我正在尝试上传更大的文件,所以我在 php 代码中设置了这个
ini_set('upload_max_filesize', '1000M');
ini_set('post_max_size', '1100M');
ini_set('memory_limit', '1200M');
但是 $_POST 和 $_FILES 是空的。但是当我更改 php.ini 设置时,它可以工作。为什么它不会即时更改设置?
看看这些:
http://www.php.net/manual/en/ini.list.php
http://www.php.net/manual/en/configuration.changes.modes.php
阅读后,您似乎可以修改的唯一选项ini_set
是memory_limit
. 其他 2 可在 php.ini 文件、httpd.conf、.htaccess 或每个目录的 .user.ini 文件中进行配置。
这意味着,如果您想更改这些值,您必须有权访问服务器的配置!您将无法从脚本中负担得起!
在 PHP 启动后更改这些设置为时已晚。
upload_max_filesize
- 上传发生在PHP 脚本运行和你的 ini_set() 被执行之前post_max_size
- 同样地即使您可以更改memory_limit
(取决于服务器配置),如果您期望上传这么大,也为时已晚。
ini_set()
有关更多信息,请参见http://www.php.net/manual/en/ini.list.php。
每个脚本都不允许更改前两个设置,但即使它们仍然无效,因为文件/POST数据必须在脚本运行之前处理,这意味着设置不会有机会生效。