1

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

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

但是 $_POST 和 $_FILES 是空的。但是当我更改 php.ini 设置时,它可以工作。为什么它不会即时更改设置?

4

3 回答 3

2

看看这些:

http://www.php.net/manual/en/ini.list.php

http://www.php.net/manual/en/configuration.changes.modes.php

阅读后,您似乎可以修改的唯一选项ini_setmemory_limit. 其他 2 可在 php.ini 文件、httpd.conf、.htaccess 或每个目录的 .user.ini 文件中进行配置。

这意味着,如果您想更改这些值,您必须有权访问服务器的配置!您将无法从脚本中负担得起!

于 2012-07-22T19:00:07.640 回答
2

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

  • upload_max_filesize- 上传发生PHP 脚本运行和你的 ini_set() 被执行之前
  • post_max_size- 同样地

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

ini_set()有关更多信息,请参见http://www.php.net/manual/en/ini.list.php

于 2012-07-22T19:03:33.303 回答
1

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

于 2012-07-22T19:03:48.877 回答