Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[教程] 改上传附件大小限制全攻略(综合数名网友的贡献,确保步骤无漏)

[复制链接]
圆圆舟子 发表于 2012-8-25 13:18:46 | 显示全部楼层 |阅读模式
本帖最后由 圆圆舟子 于 2012-10-1 15:19 编辑

//后台要改//

1、用户组设置格式类型
2、用户组级别上传附件大小(用户-用户组-编辑-论坛相关-附件相关)
3、版块有没有限制某格式
4、后台全局》附件类型及尺寸,这一个一定要设置


//php.ini要改//
1.改max_execution_time = 0
(0表没有限制)
-------------------------------------------
另一种方法是可以在php程序中加入
set_time_limit();
来设定页面最久执行时间.
set_time_limit(0);//0表示没有限制
-------------------------------------------------
2. 改post_max_size = 100M(以下数值,自行斟酌)

3. 改upload_max_filesize=80M
(post_max_size 大于 upload_max_filesize 为佳)

4. memory_limit = 128M
mejss 发表于 2012-8-25 15:06:03 | 显示全部楼层
还有一个要注意
client_max_body_size
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-8-25 22:43:57 | 显示全部楼层
thanks  欢迎i大家补全。

不过我倒是已经设好了。没用到 client_max_body_size
回复

使用道具 举报

mark35 发表于 2012-8-29 13:18:56 | 显示全部楼层
max_execution_time 最好别改成0,尤其是是fcgi模式下
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-9-9 18:22:14 | 显示全部楼层
谢谢 mark35 的提醒 {:soso_e100:}
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-9-10 13:22:02 | 显示全部楼层
{:soso_e100:}
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-9-15 14:48:41 | 显示全部楼层
改成上面数值没问题。

后来改成更大的,论坛就挂了,好不容易才找到是这个设定的原因(因为不是立刻发作的)。

目前还没研究出最大能设多少。
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-9-15 14:57:03 | 显示全部楼层
mejss 发表于 2012-8-25 15:06
还有一个要注意
client_max_body_size

会不会就是mejss说的这个问题啊?

那里有为上下传超大档案,改php.ini的教程啊
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-9-15 15:03:15 | 显示全部楼层
-----【转载】----
nginx的上传参数题目,需要特别留意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中无法log到访问的.

  修改了php.ini文件如下: 参数 设置 说明

  file_uploads on 是否答应通过HTTP上传文件的开关。默以为ON即是开

  upload_tmp_dir 文件上传至服务器上存储临时文件的地方,假如没指定就会用系统默认的临时文件夹

  upload_max_filesize 8m 看文生意,即答应上传文件大小的最大值。默以为2M

  post_max_size 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默以为8M

  说明

  一般地,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成题目

  但假如要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。

  max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒

  mavpsx_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒

  memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M

  没有效果,由于的webserver用的是nginx的 google了一下,再nginx的conf中添加了一个参数:

  默认是1M,需要增大的话。

  在nginx.conf中增加一句

  client_max_body_size 30m;

  重启即可

  30m表示最大上传30M,需要多大设置多大
回复

使用道具 举报

 楼主| 圆圆舟子 发表于 2012-9-15 15:04:40 | 显示全部楼层
本帖最后由 圆圆舟子 于 2012-10-1 08:37 编辑

---【转载】----

一.几个参数调整:


0:文件上传时存放文件的临时目录。必须是 PHP 进程所有者用户可写的目录。如果未指定则 PHP 使用系统默认值

php.ini文件中upload_tmp_dir用来说明PHP上传的文件放置的临时目录。

要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限

1:max_execution_time

变量max_execution_time设置了在强制终止脚本前PHP等待脚本 执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态时此变量非常有用。然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件), 这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增加,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭。

max_execution_time = 90

2:file_uploads = On

3:upload_max_filesize = 2M

4:post_max_size

同表单提交相关的一个变量是post_max_size,它将控制在采用POST 方法进行一次表单提交中PHP所能够接收的最大数据量。似乎不大可能需要将默认的8 MB改得更大。相反,应当适当将其降到更为实际的数值。但如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize还 要大。

post_max_size = 8M

5:max_input_time

此变量可以以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在低速链路上,则需要增加此值以适应接收数据所需的更多时间。

max_input_time = 90

6:memory_limit

memory_limit = 8M

为了避免正在运行的脚本大量使用系统可用内存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本程序可以使用的最大内存容量

变量memory_limit的值应当适当大于post_max_size的值

如何实现php大文件上传:

一个简单的配置例子,大家可以参考下:

1:打开php.ini,首先找到

file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开

upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹

upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2M

post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M


一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。

但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数

max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒

max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒

memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M

把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了


如果您的web服务器是nginx的话,配置好了以上步骤依然不能上传8M以上的文件,那么你应该 查看nginx.conf的配置项:

client_max_body_size 8m;

默认该项值好像是8m,问题就出在这里,修改的大些:

client_max_body_size 120m;


apache服务器应该也类似吧,希望对大家有帮助,这几天在解决这bug过程中,发现无论怎 么修改php.ini的配置都无效,所以才想起来web服务器的配置项;

================================================
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 13:33 , Processed in 0.029635 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表