CodeIgniter文件上载类 - 初始化不同的配置文件

时间:2011-11-09 09:03:54

标签: php codeigniter

所以我一直在谷歌上搜索一下,似乎无法找到答案。

据我所知,此代码:$this->upload->initialize()使用upload.php配置文件初始化CI文件上传类。我想要做的是使用不同的文件。

我试过$this->upload->initialize('upload_other'),但这似乎不起作用。我知道你可以在控制器中设置一个$config数组,但我试图避免这种情况。

这可能吗?我是以错误的方式接近这个吗?

2 个答案:

答案 0 :(得分:6)

您无法初始化/覆盖此类配置。

您可以按

进行初始化
$this->config->load('upload');
-- Some code Here -- 

$this->config->load('upload_other');
-- Some code Here -- 

或者您可以通过数组执行以下操作。

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';

$this->load->library('upload', $config);

// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
$this->upload->initialize($config);

如果您想同时进行一次上传,可以更改配置数组。

$config2['upload_path'] = './uploads/small/';
$config2['allowed_types'] = 'gif|jpg|png';
$config2['max_size'] = '100';
$config2['max_width'] = '100';
$config2['max_height'] = '100';

$this->load->library('upload', $config2);

// Alternately you can set
$this->upload->initialize($config2);

<强>更新

您可以在配置文件中指定常规数据。说

config['width'] = '100';

config['width2'] = '100';

现在在你的控制器中使用

config['width'] = $this->config->item('width');

config2['width'] = $this->config->item('width2');

这样您可以重复使用相同的设置。

答案 1 :(得分:0)

为什么要避免使用配置数组?另一种方法是创建upload.php-config文件。如果要在不同的控制器上使用不同的配置,可以随时创建并加载完整的自定义配置文件:Codeigniter userguide在这里,您可以使用不同的upload-config数组创建多个变量。

您可以在每个控制器中加载此配置文件,并使用initialize方法使用这些配置。