所以我一直在谷歌上搜索一下,似乎无法找到答案。
据我所知,此代码:$this->upload->initialize()
使用upload.php
配置文件初始化CI文件上传类。我想要做的是使用不同的文件。
我试过$this->upload->initialize('upload_other')
,但这似乎不起作用。我知道你可以在控制器中设置一个$config
数组,但我试图避免这种情况。
这可能吗?我是以错误的方式接近这个吗?
答案 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方法使用这些配置。