我正在尝试上传更大的文件,所以我在php代码中设置了这个
ini_set('upload_max_filesize', '1000M');
ini_set('post_max_size', '1100M');
ini_set('memory_limit', '1200M');
但是$_POST和$_FILES是空的。但当我更改php.ini设置时,它就起作用了。为什么它不在飞行中改变设置?
在PHP启动后更改这些设置为时已晚。
upload_max_filesize
-上传发生在运行PHP脚本和执行ini_set()之前post_max_size
-同样
即使您可以更改memory_limit
(取决于服务器配置),如果您期望上传这么大的内容,那也太晚了。
参见ini_set()
和http://www.php.net/manual/en/ini.list.php了解更多信息。
看看这些:
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文件中配置。
也就是说,如果你想更改这些值,你必须有权访问服务器的配置!在剧本里你是负担不起的!
每个脚本都不允许更改前两个设置,但即使它们是,它仍然无效,因为在运行脚本之前,必须处理文件/POST数据,这意味着设置将没有机会生效。