在PHP上更改upload_max_filesize

Ros*_*oss 79 php upload

我正在使用PHP 5.3.0并且遇到了可能是错误的东西(在这种情况下我会报告它)或者可能是我 - 所以我要求确认.

运行此代码时:

<?php
ini_set('upload_max_filesize', '10M');
echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size')
Run Code Online (Sandbox Code Playgroud)

我最终得到:

2M, 8M
Run Code Online (Sandbox Code Playgroud)

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

upload_max_filesize = 10M
post_max_size = 10M
Run Code Online (Sandbox Code Playgroud)

(只发生一次)

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

更新:看起来重启Apache修复了这个 - 我一直认为如果你改变php.ini它不需要重新启动.

kar*_*m79 69

您使用的是共享托管服务提供商吗?它可能是主设置覆盖您尝试更改的任何内容.您是否尝试将这些添加到.htaccess中?

php_value upload_max_filesize 10M
php_value post_max_size 10M
Run Code Online (Sandbox Code Playgroud)

  • 更新:这确实会影响它(将它们更改为10),因此此方法有效.我仍然很困惑为什么它不能在php.ini中工作或使用ini_set. (5认同)
  • 请注意,这仅适用于运行PHP作为模块的Apache,而不适用于CGI (3认同)

Rob*_*Rob 61

您不能使用简写表示法来设置PHP.ini之外的配置值.我认为当面对一个糟糕的值时,它作为编译后的默认值会回落到2MB.

另一方面,我认为upload_max_filesize不能使用ini_set().该"官方"列表中说,它是PHP_INI_PERDIR.

  • 你认为对!您无法使用ini_set()设置upload_max_filesize,因为upload_max_filesize是PHP_INI_PERDIR类型,这意味着只能通过以下内容更改:php.ini,.htaccess或httpd.conf,如下所示:http://php.net/manual/en/configuration. changes.modes.php (10认同)
  • 实际上,您可以在PHP.ini之外使用速记符号。您可以在.htaccess和ini_set中使用它。不过,可能并非所有版本都如此。 (2认同)

小智 37

由于我刚刚在共享主机上遇到此问题并且无法将值添加到我的.htaccess文件中,我以为我会分享我的解决方案.

我用其中的值创建了一个ini文件.就那么简单:

创建一个名为".user.ini"的文件并添加您的值

upload_max_filesize = 150M
post_max_size = 150M
Run Code Online (Sandbox Code Playgroud)

热潮,问题解决了.

  • "除了主要的php.ini文件之外,PHP还会扫描每个目录中的INI文件,从所请求的PHP文件的目录开始,然后直到当前文档根目录." http://php.net/manual/en/configuration.file.per-user.php (4认同)

dwe*_*aus 9

我使用与我的index.php脚本相同的目录中的.user.ini文件来加载我的应用程序.以下是内容:

upload_max_filesize = "20M"
post_max_size = "25M"
Run Code Online (Sandbox Code Playgroud)

这是Heroku的推荐解决方案.


Byr*_*ock 5

这也可以通过apache配置进行控制。检查httpd.conf和/或.htaccess是否类似以下内容:

php_value upload_max_filesize 10M
Run Code Online (Sandbox Code Playgroud)