做网站这么多年,真没见过几个客户不吐槽后台上传限制的。
特别是那种搞素材库、或者经常发高清图的。
每次传个大点儿的视频或者原图,啪一下,报错。
提示:文件过大,请上传不大于5M的文件。
心里那个急啊,跟热锅上的蚂蚁似的。
很多新手朋友就问我,网站上传文件不大于5M定么做?
其实这事儿没那么玄乎,别被那些技术术语吓住。
咱们今天不整那些虚的,直接上干货。
我是老李,在这行摸爬滚打15年,见过的坑比你吃过的米都多。
首先得搞清楚,这限制是谁设的。
通常有两个地方在卡你。
一个是服务器本身的配置,比如Nginx或者Apache。
另一个是PHP的运行环境,也就是php.ini。
还有可能是你用的CMS系统,比如WordPress,自己加了限制。
大多数情况,前两者是主要原因。
如果你用的是虚拟主机,那事儿就稍微麻烦点。
因为很多廉价主机商,为了省资源,把限制锁死了。
这时候你找客服,客服可能只会回一句:亲,这是公司规定。
这时候你就得硬气点,问问能不能调大。
如果不行,那就只能换主机了,或者用外部存储。
但如果你有自己的服务器,或者VPS,那就好办了。
先说PHP那边的限制。
找到你的php.ini文件。
这个文件一般在网站根目录,或者在phpinfo()页面里能看到路径。
打开它,搜索upload_max_filesize。
默认可能是2M或者10M,把它改成20M,或者更大。
比如:upload_max_filesize = 20M
别忘了还有一个post_max_size。
这个必须比upload_max_filesize大。
不然你传个19M的文件,它也会报错。
改成:post_max_size = 25M
改完别急着重启,还得看Nginx。
如果是Nginx服务器,得改nginx.conf。
找到client_max_body_size这一行。
默认是1M,太小了。
改成:client_max_body_size 20m;
注意,这里是小写m,而且单位是m。
改完记得重启Nginx服务,不然不生效。
命令通常是:nginx -s reload
或者systemctl restart nginx
这一步很多人容易忘,导致改了半天没反应。
还有一种情况,是你用的WordPress。
WP本身有个上传限制,虽然不大,但有时候会卡。
你可以在主题的functions.php里加一段代码。
比如:
@ini_set( 'upload_max_size' , '20M' );
@ini_set( 'post_max_size', '25M');
@ini_set( 'max_execution_time', '300' );
这段代码能临时解决一部分问题。
但最根本的,还是改服务器配置。
另外,提醒一下,别无限调大。
万一有人上传个几个G的视频,把你服务器撑爆了咋办?
一般20M到50M对于大多数企业站足够了。
如果是视频站,那得用OSS对象存储。
把文件传到阿里云或者腾讯云的OSS。
然后在网站里引用链接。
这样既快又稳,还省服务器带宽。
这是我现在最推荐的做法。
毕竟服务器是用来跑程序的,不是用来存文件的。
存文件太浪费资源,还容易拖慢网站速度。
回到那个问题,网站上传文件不大于5M定么做?
其实只要找准原因,改配置文件就行。
大部分时候,是php.ini和nginx.conf在作怪。
如果你搞不定,找你的运维或者主机商。
别自己瞎折腾,把服务器搞崩了更麻烦。
还有一点,改完配置后,一定要测试。
传个稍微大点的文件试试。
别等上线了才发现传不上去,那就尴尬了。
有时候权限问题也会导致上传失败。
检查下uploads文件夹的权限。
通常是755或者777,看你的服务器环境。
Linux系统下,权限问题很常见。
别忽视这些细节。
总之,这事儿不难,就是步骤多。
耐心点,一步步来。
希望能帮到正在头疼的你。
如果还有问题,评论区留言,我看到会回。
毕竟,大家都不容易,互相帮衬点。
记住,网站稳定才是硬道理。
别为了省那点事,搞得一团糟。
好了,今天就聊到这。
我去喝杯咖啡,醒醒神。
下次见。