8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

 
[教程]如何突破限制上传大文件附件到xiuno站点
头像 天无神话 3月前

        一般正常运营的xiuno站点,站长是不会把上传附件大小上限设置的很高的。下面教大家两个方法。

1.代码系统修改方式


未使用宝塔方案

修改nginx配置文件:

在配置文件的server节点下新增如下内容[多少M以自己的需求而定]:

client_max_body_size 12m; 

注意:如果你设置成8m,可能仍会报错413,建议设置大一点

修改php.ini配置文件:

执行下面Bash命令找到php.ini配置文件位置

php --ini

打开php.ini,修改下面的配置项

file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开 
upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 
upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M 
post_max_size 80m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M,这里建议设置 post_max_size 为 upload_max_filesize 的 N 倍大

一般来说,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成问题的,但如果要上传>8M的大文件的话,只设置上述四项还不一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数:

max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒 
max_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒 
memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M

使用宝塔方案

打开板面→点击软件商店→点击Nginx 1.18.0的设置→配置修改

大概在26行可以看到下方的代码,修改数值即可

client_max_body_size 12m; 

接着打开自己网站所用的PHP版本,点击设置,点击上传限制并修改


以上两个方案选择一个,下面开始修改网站文件

打开/route/attach.php文件,再第33行会看到这一行代码

$size > 20480000 AND message(-1, lang('filesize_too_large', array('maxsize'=>'20M', 'size'=>$size)));

20480000是Bytes大小后面的20MB为系统上传文件附件检测大小,Bytes[字节]和MB[兆字节]是相应的关系。

修改文件时,直接百度搜索字节转换器,即可找到网页工具。在网络上找到的工具[非本站旗下,失效请百度搜索其他工具]:http://www.bejson.com/convert/filesize/

作者默认20MB为上传附件最大容量,当你修改服务器配置文件后,修改该文件,即可使配置生效。


2.修改数据库覆盖文件方式

添加大于限制附件限制的文件时,创建一个同名的几MB的文件,为了让大家更好地理解,下面做了一个案例。

案例:

假如限制只能5KB以内的附件文件上传。现在需要上传一个54.41KB的文件,文件名为di_email_notice.zip,在新文件夹下随便找一个大小为4.41KB图片123.png重命名为di_email_notice.zip上传

并发布文章帖子。发现被发布的帖子附件大小为4.41KB。

我们打开数据库表bbs_attach找到有di_email_notice.zip这段文字的一条

第一个4515就是Bytes字节换算成KB就是4.41KB,第三条就是被上传文件的网站文件目录了,最后一个就是日期目录/对应文件名称。

我们将54.41KB被限制上传的文件重命名为1_UK6G5DQ3KYDX9SF.zip,打开/upload/attach/日期/目录,将同名大小为4.41KB的文件覆盖。

找一个换算器,将54.41KB换算为55715Bytes,将数据库中的4515改为55715保存

最后发现成功上传了超过5KB的文件到网站

分割线 聚力云互联首月3元
最新回复 (0)
返回
免责申明:本站极少部分资源来自于网络,如有侵权,请发邮件至(twsh0305@qq.com),告诉我们,我们会立即撤下相关内容!