我有一个我无法访问的PC上托管的网站.我有一个上传表单,允许人们上传最大30MB的mp3文件.我的服务器端脚本是用PHP完成的.
每次我尝试上传文件时,都会收到一条错误,声称该文件超出了允许的最大大小,因此我需要增加大小.我在网上的研究建议更改.htaccess
我无法访问的文件,这样就行不通了.其他人建议我应该php.ini
在我的root上添加一个自定义文件,这个文件不起作用.还有其他建议吗?
您需要设置的值upload_max_filesize
,并post_max_size
在你的php.ini:
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
修改php.ini文件后,需要重新启动HTTP服务器才能使用新配置.
如果你不能改变你的php.ini,那你就不走运了.您无法在运行时更改这些值; 上传大于php.ini中指定值的文件将在执行到达您的调用时失败ini_set
.
请参阅核心php.ini指令的说明.
您可以通过.htaccess
文件进行更改.
.htaccess
文件存储在与.php
文件相同的目录中.他们修改该文件夹和所有子文件夹的配置.您只需.htaccess
在您选择的目录中创建一个文件(或修改它,如果存在)即可使用它们.
以下内容可以使您增加上传限制(如果服务器提供程序允许通过PHP配置更改.htaccess
).
php_value upload_max_filesize 40M php_value post_max_size 42M
我有同样的问题,我创建了一个.user.ini文件,并将其放在上载脚本所在的目录中.比在该文件中我设置这两个值:
upload_max_filesize = 40M post_max_size = 40M
它对我很有用!
您还可以使用ini_set函数(仅适用于5.3以下的PHP版本):
ini_set('post_max_size', '64M'); ini_set('upload_max_filesize', '64M');
就像@acme所说,在php 5.3及以上版本中,这个设置是PHP_INI_PERDIR指令,所以不能使用ini_set设置它们.您可以改用user.ini.
要找到ini文件,请先运行
php -i | grep -i "loaded configuration file"
然后打开文件并进行更改
upload_max_filesize = 2M post_max_size = 2M
用你想要的尺寸替换2M,例如100M.
我有一篇关于更多信息的博客文章http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-文件换WordPress的
我过去有同样的问题..我通过.htaccess
文件修复它
当您通过php configration进行更改时,.htaccess
您应将配置放在
IfModule
标记中,否则将出现内部服务器错误.
这是一个例子,它适用于我:
php_value upload_max_filesize 40M php_value post_max_size 40M
如果你想了解更多,这是php referance. http://php.net/manual/en/configuration.changes.php
我通过创建.user.ini
在PHP文件脚本所在的目录中调用的文件来解决此问题(这意味着此目录中的任何PHP脚本都会获得新的文件大小限制)
内容如下.user.ini
:
upload_max_filesize = 40M post_max_size = 40M
我有同样的问题。我尝试了通常建议的三种方法:
functions.php
php.ini
.htaccess
没有一个解决了我的问题。我正在使用Godaddy,并遇到了一个建议的解决方案,它是:
进入虚拟主机,然后管理
在“ 软件”下,选择“ 选择PHP版本”
选择表右上角以字体颜色显示的“ 切换到PHP选项”:蓝色
在最底部,您可能会拥有upload_max_filesize = 2M
现在,随时进行更改
确保单击“ 保存”按钮!
现在转到您的wp-admin面板,依次选择Media和Add
瞧!现在您有了不同的最大上传文件大小:)
很多次,我注意到共享主机托管的网站不允许更改php.ini文件中的设置。一个甚至都不能创建.htaaccess文件。在这种情况下,可以尝试以下操作
ini_set('upload_max_filesize', '10M'); ini_set('post_max_size', '10M'); ini_set('max_input_time', 300); ini_set('max_execution_time', 300);
答案有点不完整,您必须做三件事
在您的php安装程序的php.ini中(请注意:取决于您是否希望它用于CLI,apache或nginx,请找到正确的php.ini进行操作。对于nginx,它通常位于/etc/php/7.1/fpm
7.1取决于您的版本。对于apache通常/etc/php/7.1/apache2
)
post_max_size=500M upload_max_filesize=500M memory_limit=900M
或设置其他值。如果已安装apache,请重新启动/重新加载apache;如果使用nginx,请为nginx 重新启动php-fpm。