2009-07-13 32 views
67

我使用的是PHP 5.3.0,遇到了可能是bug的情况(在这种情况下,我会报告它),或者可能是我 - 所以我要求确认。在PHP上更改upload_max_filesize

运行此代码:

<?php 
ini_set('upload_max_filesize', '10M'); 
echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size') 

我结束了:

2M, 8M 

尽管这是我的php.ini中设置这些更高:

upload_max_filesize = 10M 
post_max_size = 10M 

(存在的只有一次)

因为t他设置的值以及它在php.ini中设置后发生错误我倾向于认为这是一个错误。任何人都可以确认或指出我要出错的地方吗?

更新:看起来像重新启动Apache解决了这个问题 - 我一直认为它不需要重新启动,如果你改变了php.ini。

+7

“我一直以为它并不需要重新启动,如果你改变了php.ini。“ PHP CLI立即获取更改,因为它会在每次调用时分析php.ini。 mod_php解析php.ini一次 - 当apache启动时。 – 2009-07-14 02:32:21

+0

我最近有同样的问题。如果不重新启动Apache,upload_max_filesize不会生效。我在PHP 5.2.9上。重启后,一切正常。 – Haluk 2010-02-25 08:37:23

+0

为了避免完整的Apache重启,只需使用 “sudo service apache2 reload” – user1048839 2015-06-04 20:25:11

回答

53

您不能使用shorthand notation设置php.ini之外的配置值。当我面对一个不好的值时,我认为它会回落到2MB的编译默认值。

另一方面,我不认为upload_max_filesize可以使用ini_set()设置。 "official" list指出它是PHP_INI_PERDIR

56

您使用的是共享的托管服务商吗?它可以是主设置,覆盖任何你想改变的东西。你有没有尝试将这些添加到你的.htaccess中?

php_value upload_max_filesize 10M 
php_value post_max_size 10M 
+1

不,这是我自己的Apache/PHP实例在我的机器上(这是Windows,如果它是相关的)。我会尝试将这些添加到Apache配置中。 – Ross 2009-07-13 22:28:28

+5

更新:这确实会影响它(将它们更改为10),因此此方法有效。我仍然很困惑,为什么它不能在php.ini中使用或使用ini_set。 – Ross 2009-07-13 22:30:07

2

这也可以与apache的配置控制。检查的httpd.conf和/或针对的.htaccess类似以下内容:

php_value upload_max_filesize 10M 
-1

如果您在飞行中使用ini_set,那么您会在这里找到http://php.net/manual/en/ini.core.php的信息,例如, upload_max_filesize和post_max_size不能随时更改(PHP_INI_PERDIR)。

只有php.ini,.htaccess或vhost配置更改似乎会更改这些变量。

-1

如果您正在本地服务器(如wamp或xampp)中运行,请确保它使用您认为是的php.ini。这些服务器通常默认为不在您的html文档文件夹中的php.ini。

-11

您也可以使用PHP文件这样

<?php ini_set('upload_max_filesize', '200M'); ?> 
6

我得到这个使用.user.ini文件在同一目录作为我的index.php脚本加载我的应用程序工作。以下是内容:

upload_max_filesize = "20M" 
post_max_size = "25M" 

这是Heroku的推荐解决方案。

30

因为我刚刚在共享主机上遇到了这个问题,无法将值添加到我的.htaccess文件中,我想我会分享我的解决方案。

我做了一个ini文件,其中的值。就这么简单:

建立一个叫做 “.user.ini” 文件,并添加你的价值观

upload_max_filesize = 150M 
post_max_size = 150M 

繁荣,解决问题。

相关问题