如何使用codeigniter上传超过2mb的文件

时间:2017-11-01 11:18:06

标签: php codeigniter

我正在尝试上传一个超过2mb的文件,即使在控制器中设置了最大大小但文件仍未上传。请帮助找到解决此问题的方法。

以下是我的代码:

控制器

    $config['upload_path'] = './abc/';
    $config['allowed_types'] = '*';
    $config['max_filename'] = '255';
    $config['encrypt_name'] = FALSE;
    $config['overwrite'] = TRUE;
    //$config['max_size'] = '102400'; //100 MB
    $config['max_size']             = '25600';
    $config['max_width']            = '0';
    $config['max_height']           = '0';
    $config['file_name']=$newfilename;

2 个答案:

答案 0 :(得分:4)

PHP配置也会限制大小限制;因此,您需要更新{ "content": [ ], "from": { "email": "someemail@gmail.com", "name": "Some Name" }, "reply_to": { "email": "someemail@gmail.com", "name": "Some Name" }, "personalizations": [{ "to": [{ "email": "someemail@gmail.com" }, { "email": "someotheremail@gmail.com" }], "subject": "Some subject" }], "template_id": "someID" } 并更新两个设置php.inipost_max_size

在codeigniter上找不到upload_max_filesize,而是在服务器上安装PHP。在此处阅读更多相关信息:http://php.net/manual/en/configuration.file.php

假设你想允许最大上传文件大小为256mb,这就是php.ini上你应该拥有的:

php.ini

更改为post_max_size=256M upload_max_filesize=256M 后,您必须重新启动apache或php-fpm - 具体取决于您使用的内容。

如果您使用的是共享托管环境,则可能无法直接访问php.ini文件,但您的托管服务提供商可能会限制您通过其托管控制面板(如cPanel或Plesk)修改php配置等...

如果你在本地开发,并说你在使用XAMPP的Windows上; php.ini文件通常位于此处:php.ini(取决于您安装xampp的位置)。在linux上,php.ini配置往往像C:\xampp\php\php.ini那样(并不总是保证)。

您始终可以使用以下脚本/etc/php.ini在服务器上创建一个名为phpinfo.php的文件并访问它,例如http://localhost/phpinfo.php它会显示加载的<?php phpinfo(); ?>文件的位置以及php.inipost_max_size的当前设置值。

答案 1 :(得分:0)

您可以在CI项目的根文件夹中更改.htaccess文件。这对于您可能不会更改php.ini的共享主机很有用:

$sql = $db_con2->prepare("SELECT SUM(TABLE_ROWS) AS all_rows FROM 
       INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'crm_data'");
$sql->execute();
$all_rows = $sql->fetchAll();
if (count($all_rows) > 0) {
   foreach ($all_rows as $all_rows) {
      echo $all_rows['all_rows'];
   }
} else {
   $all_rows = '0';
}
在Codeigniter中

,在config.php文件中设置filesize首选项:参见docs