PHP上传文件“过大”错误需修改php.ini中upload_max_filesize(如50M)和post_max_size(如55M),重启Web服务器后通过check_upload.php验证生效。

如果您在使用PHP上传文件时遇到“文件过大”错误提示,通常是由于PHP默认配置限制了上传文件的大小。以下是修改PHP上传文件大小限制的具体操作步骤:
一、修改php.ini配置文件中的upload_max_filesize参数
该参数控制单个上传文件的最大允许大小,必须直接修改PHP的主配置文件才能生效。
1、找到当前PHP环境使用的php.ini文件路径,可通过创建一个PHP文件并调用phpinfo()函数查看“Loaded Configuration File”项确认。
2、使用文本编辑器以管理员权限打开php.ini文件。
立即学习“PHP免费学习笔记(深入)”;
3、搜索upload_max_filesize,将其值修改为所需大小,例如:upload_max_filesize = 50M。
4、保存文件并关闭编辑器。
二、同步调整post_max_size参数
该参数限制整个POST请求体的最大尺寸,其值必须大于或等于upload_max_filesize,否则上传仍会失败。
1、在php.ini中搜索post_max_size。
2、将其设为略大于upload_max_filesize的值,例如:post_max_size = 55M。
3、确保该行未被分号注释。
三、重启Web服务器使配置生效
PHP配置更改后需重启Web服务进程,否则新设置不会加载到运行环境中。
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
1、若使用Apache,在命令行执行:sudo systemctl restart apache2(Linux Debian/Ubuntu)或sudo apachectl restart(macOS)。
2、若使用Nginx + PHP-FPM,需重启PHP-FPM服务:sudo systemctl restart php-fpm(具体服务名可能为php7.4-fpm、php8.1-fpm等,请根据phpinfo输出确认)。
3、重启Nginx:sudo systemctl restart nginx。
四、验证配置是否生效
通过PHP脚本读取当前运行时配置,确认修改已正确加载。
1、新建一个名为check_upload.php的文件,内容为:post_max_size: ' . ini_get('post_max_size'); ?>。
2、将该文件放入Web根目录,通过浏览器访问对应URL。
3、检查输出结果中两个值是否与php.ini中设置一致。
五、临时覆盖配置(仅适用于支持ini_set的环境)
某些共享主机不提供php.ini修改权限,可在脚本开头尝试动态设置,但该方法受限于PHP配置项是否可修改(upload_max_filesize和post_max_size通常为PHP_INI_SYSTEM级,不可运行时修改)。
1、在上传处理脚本最顶部添加:(仅对memory_limit等部分参数有效)。
2、注意:此方式无法修改upload_max_filesize和post_max_size,仅作辅助内存调整参考。










