0

我有一个小问题。我有一个用于上传的自定义配置文件。我想加载设置而不重新定义它们。

好的,我的配置如下所示:

配置文件

$config['upload_path'] = 'tmp/';
$config['allowed_types'] = 'zip';
$config['file_name'] = '';
$config['max_size'] = '';
$config['encrypt_name'] = false;
$config['remove_spaces'] = true;

控制器

// Here is my problem $config[]
// How to load settings from config.php without again defining $config array

$config['upload_path'] =   $this->config->item('upload_path');
$config['allowed_types'] = $this->config->item('allowed_types');
$config['file_name'] =     $this->config->item('file_name');
$config['max_size'] =      $this->config->item('max_size');
$config['encrypt_name'] =  $this->config->item('encrypt_name');
$config['remove_spaces'] = $this->config->item('remove_spaces');  

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

if(!$this->upload->do_upload())
{
    $this->session->set_flashdata('error', $this->upload->display_errors());
    redirect('extension/');
}

我想绕过 $config['test] = $this->config->item('test'); 的重新定义

这是不可能的吗?

4

3 回答 3

0

我不确定我是否遗漏了一些东西,但只是不要把这些线放在你的控制器中。这不会有效地重新声明吗?

于 2013-04-22T14:46:08.647 回答
0

http://ellislab.com/codeigniter/user-guide/libraries/config.html描述了如何加载自定义配置项。我建议按照 CI 网站的建议创建一个自定义配置文件,然后将自定义配置文件加载到您想要的位置。

所以你会有类似的东西$this->config->load('custom_upload_settings', FALSE, TRUE);,在那个文件中你会有你想要覆盖的设置。

// 加载名为 custom_upload_settings.php 的配置文件并将其分配给名为“blog_settings”的索引 $this->config->load('custom_upload_settings', TRUE);

// 检索包含在 custom_upload_settings 数组中的名为 site_name 的配置项 $site_name = $this->config->item('site_name', 'custom_upload_settings');

于 2013-04-22T14:50:55.740 回答
0

是的,Codeigniter 支持自定义上传配置。您可以设置 config/upload.php 初始设置。

另一个控制器;

$config['upload_path'] = FCPATH . 'assets/uploads/articles'; // change custom config
$this->upload->initialize($config, FALSE);

最重要的初始化第二个参数是FALSE。该参数与 RESET 相关。在保持默认上传设置的同时,您可以更改其他设置。

更多信息; Codeigniter 文件上传初始化

于 2020-02-10T21:52:03.653 回答