在PHP上更改upload_max_filesize

我正在使用PHP 5.3.0,并且遇到了一些可能是bug的东西(在这种情况下我会报告它),或者可能是我 – 所以我要求确认。

运行此代码时:

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

我结束了:

 2M, 8M 

这是尽pipe我的php.ini设置更高:

 upload_max_filesize = 10M post_max_size = 10M 

(只发生一次)

因为错误发生在设置值以及它在php.ini中设置,我倾向于认为这是一个错误。 任何人都可以确认或指出我哪里错了吗?

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

您不能使用简写符号来设置PHP.ini之外的configuration值。 当我面对一个不好的值时,我认为它会回落到2MB。

另一方面,我不认为可以使用ini_set()来设置upload_max_filesize 。 “官方”列表指出它是PHP_INI_PERDIR

您是否使用共享托pipe服务提供商? 这可能是主设置覆盖任何你想改变的东西。 你有没有尝试将这些添加到你的.htaccess?

 php_value upload_max_filesize 10M php_value post_max_size 10M 

由于我刚刚在共享主机上遇到这个问题,无法将值添加到我的.htaccess文件,我想我会分享我的解决scheme。

我用它的值做了一个ini文件。 就那么简单:

创build一个名为“.user.ini”的文件并添加您的值

 upload_max_filesize = 150M post_max_size = 150M 

繁荣,问题解决了。

我得到这个工作使用与我的index.php脚本加载我的应用程序相同的目录中的.user.ini文件。 这里是内容:

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

这是Heroku推荐的解决scheme。

这也可以通过apacheconfiguration来控制。 检查httpd.conf和/或.htaccess的如下所示:

 php_value upload_max_filesize 10M 

如果你在飞行中使用ini_set,那么你会发现这里http://php.net/manual/en/ini.core.php的信息,例如upload_max_filesize和post_max_size是不能dynamic更改(PHP_INI_PERDIR)。;

只有php.ini,.htaccess或vhostconfiguration更改似乎更改这些variables。

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

我遇到了同样的问题,但是我发现并不是所有的configuration设置都可以使用ini_set()函数来设置,请检查此处可以设置的configuration设置

你也可以像这样在php文件中使用

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