【问题标题】:CI File Upload file size exceed even after taking several measuresCI文件上传文件大小超过即使采取了几个措施
【发布时间】:2019-10-09 06:23:20
【问题描述】:

在我的基于 Codeigniter 的代码中,我采取了以下措施:

Cpanel 中的 MultiPHP INI 编辑器

asp_tags = Off
display_errors = Off
max_execution_time = 300
max_input_time = 600
max_input_vars = 1000
memory_limit = 512M
post_max_size = 128M
session.gc_maxlifetime = 1440
session.save_path = "/var/cpanel/php/sessions/ea-php56"
upload_max_filesize = 128M
zlib.output_compression = Off

主目录中的.htaccess

<IfModule php5_module>
   php_flag asp_tags Off
   php_flag display_errors Off
   php_value max_execution_time 20000
   php_value max_input_time 20000
   php_value max_input_vars 1000
   php_value memory_limit 2G
   php_value post_max_size 2G
   php_value session.gc_maxlifetime 20000
   php_value session.save_path "/var/cpanel/php/sessions/ea-php56"
   php_value upload_max_filesize 2G
   php_flag zlib.output_compression Off
</IfModule>
<IfModule lsapi_module>
   php_flag asp_tags Off
   php_flag display_errors Off
   php_value max_execution_time 20000
   php_value max_input_time 20000
   php_value max_input_vars 1000
   php_value memory_limit 2G
   php_value post_max_size 2G
   php_value session.gc_maxlifetime 20000
   php_value session.save_path "/var/cpanel/php/sessions/ea-php56"
   php_value upload_max_filesize 2G
   php_flag zlib.output_compression Off
</IfModule>

Controller 和 Model 的第一行:

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
ini_set("pcre.backtrack_limit", "100000000");
ini_set("max_allowed_packet ", "2G");
ini_set("max_execution_time ", "20000");
ini_set('max_input_time','20000');
ini_set('memory_limit', '2G');
set_time_limit(0);

文件上传前的$config

$config=array(
    'upload_path'=>$_SERVER['DOCUMENT_ROOT']."/assets/uploads/rpt/",
    'allowed_types'=>"rpt",
    'overwrite'  => TRUE,
    'max_size' => '100000000',
    'file_name' =>$filename
);
$this->load->library('upload', $config);
$this->upload->initialize($config);
if($this->upload->do_upload('rpt1'))
{
    // do something
}
else
{
    return "<div class='alert alert-danger'>".$this->upload->display_errors()."</div>";
}

在上传大于 2 MB 的文件时,我仍然收到以下消息:

上传的文件超过了 PHP 中允许的最大大小 配置文件。

还有什么解决办法?

【问题讨论】:

    标签: php codeigniter file-upload upload codeigniter-3


    【解决方案1】:

    您需要在 php.ini 中设置 upload_max_filesize 和 post_max_size 的值:

    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 50M
    
    ; Must be greater than or equal to upload_max_filesize
    post_max_size = 50M
    

    修改php.ini文件后,你需要重启你的HTTP服务器才能使用新的配置。

    如果您无法更改您的php.ini,那您就倒霉了。您不能在运行时更改这些值;当执行到达您对ini_set 的调用时,上传大于php.ini 中指定值的文件将失败。

    或

    你甚至可以在项目的.htaccess文件中设置

    php_value upload_max_filesize 50M
    php_value post_max_size 50M
    

    【讨论】:

    • 嗨@Rahul Gupta 请看看上面分享的信息。 htaccess 部分已经在那里提到了。
    • 你重启服务器了吗?
    • 是的,我也这样做了,但没有成功。我还添加了之前忘记分享的 MultiPHP INI Editor 的内容。
    • 一旦尝试将 post_max_size 2G 替换为 post_max_size 1800M 并重试。即使您遇到错误也请告诉我。
    • 甚至将upload_max_filesize 2G改为upload_max_filesize 1800M。
    【解决方案2】:

    最后我打开 WHM 来编辑 php INI 设置。在那里进行更改更正了问题。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 2011-11-18
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多