更改最大上传文件大小

Yo *_*mma 491 php

我有一个我无法访问的PC上托管的网站.我有一个上传表单,允许人们上传最大30MB的mp3文件.我的服务器端脚本是用PHP完成的.

每次我尝试上传文件时,都会收到一条错误,声称该文件超出了允许的最大大小,因此我需要增加大小.我在网上的研究建议更改.htaccess我无法访问的文件,这样就行不通了.其他人建议我应该php.ini在我的root上添加一个自定义文件,这个文件不起作用.还有其他建议吗?

mea*_*gar 846

您需要设置的值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
Run Code Online (Sandbox Code Playgroud)

修改php.ini文件后,需要重新启动HTTP服务器才能使用新配置.

如果你不能改变你的php.ini,那你就不走运了.您无法在运行时更改这些值; 上传大于php.ini中指定值的文件将在执行到达您的调用时失败ini_set.

请参阅核心php.ini指令说明.

  • 我建议在`post_max_size`上设置更大的尺寸.已发布字段的总大小可能高于文件大小,因此如果您遇到上传40MB文件的边缘情况,则会因超出`post_max_size`而失败. (17认同)
  • 你可能知道php.ini文件存储的默认路由吗? (4认同)
  • 如果您在Windows下使用WAMP,可以通过单击WAMP图标> PHP - > php.ini来编辑它.在Debian中,我的配置文件位于/ etc/php5/apache2中. (4认同)
  • 请注意 memory_limit 也限制了上传大小。 (3认同)
  • 在 Linux 上,它通常位于 /etc/php/ 或类似的内容中。如果您使用的是共享服务器,那么除非您的托管提供商足够慷慨地提供每个用户的 php.ini 文件,否则您就不走运了。 (2认同)

And*_*ore 143

您可以通过.htaccess文件进行更改.

.htaccess文件存储在与.php文件相同的目录中.他们修改该文件夹和所有子文件夹的配置.您只需.htaccess在您选择的目录中创建一个文件(或修改它,如果存在)即可使用它们.

以下内容可以使您增加上传限制(如果服务器提供程序允许通过PHP配置更改.htaccess).

php_value upload_max_filesize 40M
php_value post_max_size 42M
Run Code Online (Sandbox Code Playgroud)

  • 看起来在.htaccess中添加它只会在运行Apache时起作用.试试吧,对我来说很好. (5认同)
  • 它似乎并不总是有效.在我的开发机器上,在.htaccess中设置了适当的值.但是在共享主机上,此设置不起作用,但错误消息显示允许的最大上载大小是我在.htaccess中设置的值.所以一个非常奇怪的情况发生了. (3认同)

小智 57

我有同样的问题,我创建了一个.user.ini文件,并将其放在上载脚本所在的目录中.比在该文件中我设置这两个值:

  upload_max_filesize = 40M

  post_max_size = 40M
Run Code Online (Sandbox Code Playgroud)

它对我很有用!

  • 大.也可以使用fastcgi.[需要PHP5.3或更高版本.](http://php.net/manual/en/configuration.file.per-user.php) (2认同)

Man*_*jar 51

您还可以使用ini_set函数(仅适用于5.3以下的PHP版本):

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
Run Code Online (Sandbox Code Playgroud)

就像@acme所说,在php 5.3及以上版本中,这个设置是PHP_INI_PERDIR指令,所以不能使用ini_set设置它们.您可以改用user.ini.

  • 在最近的PHP版本中,这些ini-settings仅为[PHP_INI_PERDIR](http://www.php.net/manual/en/ini.list.php),因此您无法在脚本中设置它们.有关更多详细信息,请参见[此处](http://www.php.net/manual/en/configuration.changes.modes.php). (36认同)

sea*_*han 46

要找到ini文件,请先运行

php -i | grep -i "loaded configuration file"
Run Code Online (Sandbox Code Playgroud)

然后打开文件并进行更改

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

用你想要的尺寸替换2M,例如100M.

我有一篇关于更多信息的博客文章http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-文件换WordPress的

  • 它将文件显示为`/ etc/php5/cli/php.ini`,但我的配置文件是`/ etc/php5/apache2/php.ini`.某种误导. (4认同)

Eya*_*rra 39

我过去有同样的问题..我通过.htaccess文件修复它

当您通过php configration进行更改时,.htaccess您应将配置放在 IfModule标记中,否则将出现内部服务器错误.

这是一个例子,它适用于我:

<IfModule mod_php5.c>
   php_value upload_max_filesize 40M
   php_value post_max_size 40M
</IfModule>
Run Code Online (Sandbox Code Playgroud)

如果你想了解更多,这是php referance. http://php.net/manual/en/configuration.changes.php

  • 只要你有覆盖功能. (5认同)
  • 为了支持PHP.7,添加相同的块:<IfModule mod_php7.c> (3认同)

Pea*_*rce 15

我通过创建.user.ini在PHP文件脚本所在的目录中调用的文件来解决此问题(这意味着此目录中的任何PHP脚本都会获得新的文件大小限制)

内容如下.user.ini:

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

  • 这是我的解决方案。一切正常。如果您使用诸如codeignitor之类的框架,则“ .user.ini”必须与index.php放在同一位置 (2认同)

sei*_*arp 7

也许这应该是对@seanb123 和@Fredrick Gauss 的评论,但对于我在带有 PHP 7 的 Drupal 8.1 中,我需要修改的文件位于此处:

/etc/php/7.0/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)

我修改了其他四个 php.ini 文件,包括我的系统称为“加载的配置文件”( php -i | grep -i "loaded configuration file") 的文件和在 info.php 页面上找到的文件,但没有一个有帮助。发现正确路径的关键是在 2012 年的一个站点上找到的。他们说"/etc/php5/apache2/php.ini"即使在 BACK THEN 上该路径也已被弃用,但它给了我在哪里找到它的线索。对于 PHP7,它与 PHP5 略有不同,但概念是相同的。

也许这会帮助一些像我这样无助的笨蛋。

话虽如此,在我的情况下,对 OP 的回答是,对盒子具有管理员权限的人必须这样做。

帮助我的网站:http : //www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/

这也在这里解决:在 PHPMyAdmin 中导入文件大小限制

编辑:我给自己的笔记全文:

为了更改最大上传大小,请编辑 /etc/php/7.0/apache2/php.ini 中的 upload_max_filesize 和 [如果需要?] post_max_size (或在旧版本中: /etc/php5/apache2/php.ini )

/etc/init.d/apache2重启

再次编辑:由于您正在导入大文件,因此您可能需要更改处理它们的超时时间。例如,在我的例子中,名为“config.default.php”的文件/usr/share/phpmyadmin/libraries/config.default.php$cfg['ExecTimeLimit'] = 300; 我将我的变量更改为 900的变量一起被发现,例如。之后你需要重新启动apache


nrm*_*rmb 6

我有同样的问题。我尝试了通常建议的三种方法:

  1. functions.php
  2. php.ini
  3. .htaccess

没有一个解决了我的问题。我正在使用Godaddy,并遇到了一个建议的解决方案,它是:

  1. 进入虚拟主机,然后管理
  2. 在“ 软件”下,选择“ 选择PHP版本”
  3. 选择表右上角以字体颜色显示的“ 切换到PHP选项”:蓝色
  4. 在最底部,您可能会拥有upload_max_filesize = 2M
  5. 现在,随时进行更改
  6. 确保单击“ 保存”按钮!
  7. 现在转到您的wp-admin面板,依次选择Media和Add

瞧!现在您有了不同的最大上传文件大小:)


gar*_*chy 5

好吧,我想在这里加上我的 2 美分。

我正在使用共享虚拟主机,我多次解决这个问题,试图自己解决但无济于事。最后,我通过检查各种网络资源并联系我的托管服务提供商设法解决了这个问题。我的问题是“我怎样才能改变PHP价值memory_limit共享虚拟主机?”,“我怎样才能改变PHP价值upload_max_filesize共享虚拟主机?”,“我怎样才能改变PHP价值max_input_vars共享虚拟主机?”,“我怎样才能改变PHP的值max_execution_time在共享虚拟主机?”,“如何更改max_input_time共享虚拟主机中的php 值?” 以及更多通过配置或更改 php.ini 或.htaccess文件。我试图改变它们,但问题出现了。最后我联系了我的托管服务提供商,结果我将 php 设置为 native,他们将其更改为 php 5.6,

“您的 PHP 设置为‘本机’模式,这意味着您无法覆盖这些值。我已将您更改为‘5.6’,因此您应该可以开始使用了。”

之后我通过 ftp Filezilla 连接了我的网站,也不要忘记让你的 ftp 服务显示隐藏文件,并且你的本地计算机这样做,因为.htaccess文件隐藏在我的本地笔记本电脑和我的网站中。它在 public_html 文件夹中可用,我刚刚下载了它并将以下代码添加到文件末尾,然后将其上传回服务器:

php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

目前一切正常,如果你们中的任何人克服了一些问题,请写在这里并警告我,以便我可以更改上面显示的代码。顺便说一下,我还上传了一些显示变化的图片。

还有一件事我差点忘了在你的共享虚拟主机服务上提到 ZipArchive 安装,我通过我的 cpanel 进入 php 设置,点击 php 选择器扩展,然后勾选 zip 部分,就完成了这个要求。

谢谢。

PS:我对好的做法持开放态度,如果您在这里看到任何不好的做法,请告诉我,我会尝试更改它们。谢谢。


The*_*emy 5

很多次,我注意到共享主机托管的网站不允许更改php.ini文件中的设置。一个甚至都不能创建.htaac​​cess文件。在这种情况下,可以尝试以下操作

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我忘记了超时的名称,所以这是正确的答案,因为即使您增加最大上传大小,该过程仍然可能超时。 (2认同)

Tos*_*kan 5

答案有点不完整,您必须做三件事

在您的php安装程序的php.ini中(请注意:取决于您是否希望它用于CLI,apache或nginx,请找到正确的php.ini进行操作。对于nginx,它通常位于/etc/php/7.1/fpm7.1取决于您的版本。对于apache通常/etc/php/7.1/apache2

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M
Run Code Online (Sandbox Code Playgroud)

或设置其他值。如果已安装apache,请重新启动/重新加载apache;如果使用nginx,请为nginx 重新启动php-fpm