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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

上传附件大小突破2M限制方法(给某人,不要是不是就怪康盛)

[复制链接]
gjj 发表于 2010-6-21 22:41:50 | 显示全部楼层 |阅读模式
   我以前也碰到过这样的问题,一开始怀疑是程序的问题。后来才发现问题出在系统设置上。就像上次,我自己在用户栏目里设置了正则判断,结果新用户注册老是出错,我也怀疑是discuzX的bug,害大黄帮我检查了半天,结果后来。。。发现原来是自己搞错了。
   刚刚看到有个站长朋友说discuzX怎么设置都不能上传2M以上的文件,在那里骂DZ,我出来说句公道话,其实DZ也不容易,辛辛苦苦做这么个程序出来,免费给你们用,还要被你们骂。有些问题是DZ的疏忽倒是罢了,可有时侯问题出在我们身上。这样的问题多了。DZ做为一个免费软件,有这么多精力来回答你的问题吗?这让我想起我六年前做的迷你软件,到现在都还有人在用,可就因为六年前的一个bug,被人给臭骂了一番,我发誓这辈子再也不做迷你软件了。当然,DZ肯定比我有承受能力,不会因为这点小事就停止自己所做的事情。
   我提个小建议,当我们发现问题的时侯,尽量多找找自己的原因,多搜索一下前面的人的经验,少发一些牢骚,让真真正正须要解决的问题不至于淹没在信息海洋之中。。。。。。。。。。。。。

   我第一次在DZ论坛上这么多废话,还是给那位站长一个解决方案吧。下面的文章是我在网上搜的,以前我也是因为这样的原因,改了一下配置就OK了,不妨一试《PHP上传文件涉及到的参数》


PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP、apache等的一些参数. 下面,我们简要介绍一下PHP文件上传涉及到的一些参数:

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

upload_tmp_dir
upload_tmp_dir用来说明PHP上传的文件放置的临时目录,要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限,如果未指定则PHP使用系统默认值

upload_max_filesize
允许上传文件大小的最大值,默认为2M

post_max_size
控制在采用POST方法进行一次表单提交中PHP所能够接收的最大数据量。如果希望使用PHP文件上传功能,则需要将此值改为比upload_max_filesize要大

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

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

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

对于linux主机,可能在/etc/httpd/conf.d/access.conf/下面里面还有php.conf 文件,这个文件可能会解决一些系统的文件大小限制问题
利用discuz实现PHP大文件上传应用举例
论坛的附件功能当初设计的初衷并不是为了文件管理,由于服务器配置,php,网络等多方面因素,使得通过论坛上传文件并不是一个好方案。

对于确实需要改善论坛附件上传条件的朋友可以尝试将上面提及的参数在php.ini进行设置,以适应大文件上传的需要。同时别忘记在论坛的后台相应做附件限制的地方进行设置。
论坛主要有2个地方可以对附件上传的大小进行限制,级别从高到低依次为:

帖子相关---附件类型尺寸
用户组---附件相关
同时,下面提供一个配置指导,来源一些成功通过http上传大附件的朋友的提供,当然,由于大家的服务器配置情况以及网络情况不同,并不一定适用你的情况,可能很多地方需要参照修改:
打开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


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

服务器中修改php.ini文件:
查找max_execution_time = 30,更改为max_execution_time = 600
查找max_input_time = 60,更改为max_input_time = 600
查找memory_limit = 8M ,更改为memory_limit = 20M
查找display_errors = On,更改为display_errors = Off
查找register_globals = Off,更改为register_globals = On
查找post_max_size = 8M,更改为post_max_size = 20M
查找upload_max_filesize = 2M,更改为upload_max_filesize = 20M


评分

1

查看全部评分

kentcn 发表于 2010-6-21 22:42:22 | 显示全部楼层
回复

使用道具 举报

古道瘦马 发表于 2010-6-22 01:30:28 | 显示全部楼层
本帖最后由 古道瘦马 于 2010-6-22 01:34 编辑

没用,这些我都知道,如果不是这样的话,我会指责康盛吗?我论坛升级前就一直好好好,升级到X1以后就不行了,怎么设置都不起作用,别说2M,根本就只能传1M多一点的附件!
回复

使用道具 举报

古道瘦马 发表于 2010-6-22 01:34:23 | 显示全部楼层
本帖最后由 古道瘦马 于 2010-6-22 01:35 编辑

还有,你别说什么免费不免费,没有这绝对数量的站长们,康盛能以这么高的价值卖给TX吗?这只不过是一种商业策略而已,更何况光我一个论坛,网页游戏就给康盛贡献了数万的收入,我为什么不能指责他们做不好的地方?
回复

使用道具 举报

caihewei 发表于 2010-6-22 07:11:28 | 显示全部楼层
为什么我的没问题呢,只能证明ls的服务器有问题
回复

使用道具 举报

tl365 发表于 2010-6-22 07:28:45 | 显示全部楼层
好贴,顶,这样确实不太好
回复

使用道具 举报

Donny8611 发表于 2010-6-22 07:49:56 | 显示全部楼层
2M不知道。1.8以上的附件我倒是試過。沒問題呀。
(我女朋友個豬。把1.8M的 BMP文件後綴一改JPG,直接上傳)
回复

使用道具 举报

650610 发表于 2010-6-22 08:10:38 | 显示全部楼层
上传2M以上的没有问题,分享http://u.qa114.com/cf.aspx?27&yangxiangjun试试看看
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 11:23 , Processed in 0.040642 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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