我有一个网站托管在我无法访问的PC上。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。
每次我尝试上传文件时,都会收到一个错误,声称文件超过了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改。htaccess文件,我没有访问权限,所以这将不起作用。其他人建议我添加一个自定义的php.ini文件到我的根目录,但这并不奏效。还有其他建议吗?
我有一个网站托管在我无法访问的PC上。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。
每次我尝试上传文件时,都会收到一个错误,声称文件超过了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改。htaccess文件,我没有访问权限,所以这将不起作用。其他人建议我添加一个自定义的php.ini文件到我的根目录,但这并不奏效。还有其他建议吗?
当前回答
我通过在PHP文件脚本所在的目录中创建一个名为.user.ini的文件解决了这个问题(这意味着该目录中的任何PHP脚本都得到了新的文件大小限制)
.user.ini的内容是:
upload_max_filesize = 40M
post_max_size = 40M
其他回答
有了WAMP,一切都很简单
WAMP图标> PHP > PHP设置> upload_max_filesize = nM > n = (2M, 4M, 8M, 16M, 32M, 64M, 128M, 256M, 512M,或选择(自定义))。
服务自动重新加载。
但是,如果您确实没有访问服务器的权限,您可能想要尝试编写一个分块API。
下面是如何做到这一点的图片。
你需要检查三件事。
php.ini配置文件中的Upload_max_filesize, memory_limit和post_max_size。
所有这三个设置都限制了PHP可以提交和处理的数据的最大大小。
通常post_max_size和memory_limit需要大于upload_max_filesize。
所以你总共需要检查三个变量才能完全确定。
答案有点不完整,你必须做3件事
在你的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,请使用php-fpm。
很多次我都注意到共享主机的站点不允许更改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);
你也可以使用ini_set函数(仅适用于PHP 5.3以下版本):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
就像@acme说的,在php 5.3及以上的设置是PHP_INI_PERDIR指令,所以他们不能使用ini_set设置。你可以使用user.ini代替。