php服务器文件上传大小被限制如何修改?

2024年11月29日 23:27
有4个网友回答
网友(1):

  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的大体积文件,只设置上述四项还一定能行的通。

  2. 进一步配置以下的参数
    max_execution_time = 600
    ;每个PHP页面运行的最大时间值(秒),默认30秒
    max_input_time = 600
    ;每个PHP页面接收数据所需的最大时间,默认60秒
    memory_limit = 8m
    ;每个PHP页面所吃掉的最大内存,默认8M
    把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
    max_execution_time
    = 600
    max_input_time = 600
    memory_limit = 32m
    file_uploads =
    on
    upload_tmp_dir = /tmp
    upload_max_filesize = 32m
    post_max_size =
    32m

网友(2):

/* 文件上传相关配置在config里面配置 */
'DOWNLOAD_UPLOAD' => array(
'mimes'    => '', //允许上传的文件MiMe类型
'maxSize'  => 5*1024*1024, //上传的文件大小限制 (0-不做限制)
'exts'     => 'jpg,gif,png,jpeg,zip,rar,tar,gz,7z,doc,docx,txt,xml', //允许上传的文件后缀
'autoSub'  => true, //自动子目录保存文件
'subName'  => array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
'rootPath' => './Uploads/Download/', //保存根路径
'savePath' => '', //保存路径
'saveName' => array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
'saveExt'  => '', //文件保存后缀,空则使用原后缀
'replace'  => false, //存在同名是否覆盖
'hash'     => true, //是否生成hash编码
'callback' => false, //检测文件是否存在回调函数,如果存在返回文件信息数组
), 
/* 文件上传 */
    public function upload()
    {
        $return = array('status' => 1, 'info' => '上传成功', 'data' => '');
        /* 调用文件上传组件上传文件 */
        $File = D('File');
        $file_driver = C('DOWNLOAD_UPLOAD_DRIVER');
        $info = $File->upload(
            $_FILES,
            C('DOWNLOAD_UPLOAD'),
            C('DOWNLOAD_UPLOAD_DRIVER'),
            C("UPLOAD_{$file_driver}_CONFIG")
        );
        /* 记录附件信息 */
        if ($info) {
            $return['data'] = $info['download'];
            $return['info'] = $info['download']['name'];
            $return['data']['id'] = M('picture')->add(array('path'=>'/Uploads/Download/'.$return['data']['savepath'].''.$return['data']['savename'],'md5'=>$return['data']['md5'],'sha1'=>$return['data']['sha1'],'status'=>1,'create_time'=>NOW_TIME));
        } else {
            $return['status'] = 0;
            $return['info'] = $File->getError();
        }
        /* 返回JSON数据 */
        $this->ajaxReturn($return);
    }

网友(3):

post_max_size 属于 PHP_INI_PERDIR 属性,只能在 php.ini, .htaccess 或 httpd.conf 中设置,如果 php.ini 或者 httpd.conf 都无权限的话(虚拟主机通常如此),那么只能通过 .htaccess 来设置(虚拟主机通常支持)。参考设置如下:
.htaccess里写入

php_value post_max_size 12m
php_value upload_max_filesize 12m
php_value max_execution_time 120
php_value max_input_time 240

没测试过,仅供参考。
同时注意可能需要一并设置 upload_max_filesize

网友(4):

服务器也是一样呀。你有管理员的权限就可以修改。