ini_set不会覆盖php设置

时间:2012-07-22 18:56:38

标签: php file-upload

我正在尝试上传更大的文件,所以我在php代码中设置了这个

    ini_set('upload_max_filesize', '1000M');
ini_set('post_max_size', '1100M');
ini_set('memory_limit', '1200M');

但是$ _POST和$ _FILES是空的。但是,当我更改php.ini设置时,它的工作原理。为什么它不会动态改变设置?

3 个答案:

答案 0 :(得分:2)

看看这些:

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文件中配置。

意思是,如果要更改这些值,则必须能够访问服务器的配置!你将无法从剧本中买得起!

答案 1 :(得分:2)

在PHP启动后更改这些设置为时已晚。

  • upload_max_filesize - 在运行PHP脚本并执行ini_set()之前上传
  • post_max_size - 同样

即使您可以更改memory_limit(取决于服务器配置),如果您期望大量上传,也会为时已晚。

有关详细信息,请参阅ini_set()http://www.php.net/manual/en/ini.list.php

答案 2 :(得分:1)

每个脚本不允许更改前两个设置,但即使它们 ,它仍然无效,因为在脚本之前必须处理文件/ POST数据甚至运行,这意味着设置没有机会生效。