discuz程序本身对上传附件大小是可以用户自定义了,但除了这里限制之外还有我们环境会有限制了,像php.ini中有内个参数是需要修改,否则改了discuz也是无效的哦
控制 php 的容许上传大小也有多种方式,一种全局控制 php.ini 文件,二是通过 .htaccess 文件控制
一、全局控制 php.ini 文件
1、开启文件上传

  • file_uploads = On

复制代码
2、内存大小

  • memory_limit = 128M // 在被取消之前,一个脚本可使用多少内存(字节)

复制代码
3、增加 post 方式提交的数据大小

  • post_max_size = 100M

复制代码
4、允许上传的最大上传文件大小

  • upload_max_filesize =100M

复制代码
5、最大的输入时间。一个脚本等待输入数据的时间有多长(秒)

  • max_input_time = 60

复制代码
6、增加进程执行的时间。一个脚本可使用多少 CPU 秒

  • max_execution_time = 300

复制代码
从逻辑顺序上:memory_limit > post_max_size > upload_max_filesize,再加上一个前提 max_execution_time许可时间足够长。
二、在 .htaccess 中添加上述对应的设置值

  • php_value upload_max_filesize 100M
  • php_value post_max_size 100M
  • php_value max_execution_time 300

复制代码
三、如果是nginx系统我们除了修改php配置还需要修改nginx中相关配置
1、修改/usr/local/nginx/conf/nginx.conf 文件,查找 client_max_body_size 将后面的值设置为你想设置的值。比如:
代码如下      

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
            root           /home/www/htdocs;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /home/www/htdocs$fastcgi_script_name;
            include        fastcgi_params;
            client_max_body_size 35m;        #客户端上传文件大小设为35M
            client_body_temp_path /home/www/nginx_temp;        #设置临时目录
}

复制代码
注意:nginx中配置只需要对client_max_body_size进行设置就可以了,当然如果文件太大上传时间太长了,我还需要设置程序与nginx脚本超时时长哦。
nginx修改时间长keepalive_timeout 65;
php脚本时长只要在页面开始处加具set_limit_time(0)就可以了

作者 mskkingtake