Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改最大上载文件大小_Php - Fatal编程技术网

Php 更改最大上载文件大小

Php 更改最大上载文件大小,php,Php,我有一个网站托管在我无法访问的PC上。我有一个上传表单,允许人们上传最大为30MB的mp3文件。我的服务器端脚本是用PHP编写的 每次我尝试上传一个文件时,我都会收到一个错误,声称该文件超出了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改我无权访问的.htaccess文件,这样做行不通。其他人建议我应该在我的根目录中添加一个自定义的php.ini文件,但该文件不起作用。还有其他建议吗?您需要在php.ini中设置upload\u max\u filesize和post\u max\

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


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

您需要在php.ini中设置
upload\u max\u filesize
post\u max\u size
的值:

;上载文件允许的最大大小。
上载\u最大\u文件大小=40M
; 必须大于或等于上载\u最大\u文件大小
立柱最大尺寸=40M
修改php.ini文件后,需要重新启动HTTP服务器以使用新配置

如果你不能改变你的php.ini,那你就倒霉了。不能在运行时更改这些值;当执行到达调用
ini\u set
时,上载大于php.ini中指定值的文件将失败


请参阅。

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

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

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

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


正如@acme所说,在PHP5.3及以上版本中,这些设置是php_INI_PERDIR指令,因此不能使用INI_set设置它们。您可以改用user.ini。

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

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

这是一个例子,对我来说效果很好:

<IfModule mod_php5.c>
   php_value upload_max_filesize 40M
   php_value post_max_size 40M
</IfModule>

php\u值上传\u最大\u文件大小40M
php_值后最大尺寸40M
如果你想了解更多,这是php参考。

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

  upload_max_filesize = 40M

  post_max_size = 40M

这对我来说非常有效

要找到ini文件,请首先运行

php -i | grep -i "loaded configuration file"
然后打开文件并进行更改

upload_max_filesize = 2M
post_max_size = 2M
将2米替换为您想要的尺寸,例如100米


我有一篇关于的博客文章,里面也有一些更多的信息

这些解决方案中没有一个适合我!!(默认情况下已设置为32M)。在大多数情况下,问题是
max\u allowed\u packet

我正在使用localhost和
MAMP

这里是解决方案

1。如果您没有my.ini的

添加

--max_allowed_packet=168435456
max_allowed_packet=100M

...\MAMP\bin\startMysql.sh

2。如果您有我的.ini

[mysqld]
添加

--max_allowed_packet=168435456
max_allowed_packet=100M

完成

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

.user.ini
的内容包括:

upload_max_filesize = 40M
post_max_size = 40M

嗯,我想在这里加上我的2美分

我正在使用共享网络主机,我解决了这个问题很多次,试图自己解决它,但都没有用。 最后,我通过检查各种网络资源并联系我的托管服务提供商,设法解决了这个问题。我的问题是“如何在共享网络主机中更改php值
内存限制”
,“如何在共享网络主机中更改php值
上传最大文件大小
,“如何在共享网络主机中更改php值
最大输入变量
,“如何在共享网络主机中更改php值
最大执行时间
”,“如何在共享webhosting中更改php值
max\u input\u time
”,以及通过配置或更改php.ini或
.htaccess
文件进行更多更改。我试图更改它们,但出现了问题。最后我联系了我的托管提供商,结果发现我将php设置为本机,他们将其更改为php 5.6,以下是他们的答案:

“您的PHP被设置为“本机”模式,这意味着您无法重写 这些价值观。我把你改成了“5.6”,所以你应该对我很好 去吧。”

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

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

目前一切正常,如果有人遇到问题,请写在这里并警告我,以便我可以更改上面显示的代码。顺便说一下,我还上传了一些显示更改的图片

还有一件事我差点忘了在您的共享webhosting服务上安装ZipArchive,我通过我的cpanel进入php设置,点击php选择器扩展,然后点击zip部分,就满足了这个要求

谢谢


附言:我愿意接受好的做法,如果你在这里看到任何不好的做法,请告诉我,我会尝试改变它们。谢谢。

你需要检查三件事

在php.ini配置中上载最大文件大小
内存限制
发布最大文件大小
/etc/php/7.0/apache2/php.ini
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
post_max_size=500M

upload_max_filesize=500M

memory_limit=900M
client_max_body_size 0;
sudo service php-fpm restart 
<If "%{REQUEST_URI} == '/subfolder/big_file_upload.php'" >
php_value upload_max_filesize 200M
php_value post_max_size 200M
</If>
<Else>
php_value upload_max_filesize 1M
php_value post_max_size 1M
</Else>