-1

我正在从两个单独的视图上传图像,因此在库下的自动加载中,我包含了upload

我在配置中有一个名为 upload.php 的文件。从这里我传递大小,文件类型等参数。

          if( ??){
        $config['upload_path'] = realpath('x');
$config['allowed_types'] = 'gif';
$config['max_size'] = '1048';
$config['max_width']  = '1024';
$config['max_height']  = '768';
          }
           else{
        $config['upload_path'] = realpath('x');
$config['allowed_types'] = 'gif';
$config['max_size'] = '1048';
$config['max_width']  = '1024';
$config['max_height']  = '768';


              }

现在由于我有两个上传的地方,我有不同的文件大小,类型参数,我的控制器如何知道要拿哪一个。我应该在 if{} else {] 条件中输入什么。

让我知道,如果我不清楚。

4

2 回答 2

0

您的代码必须做一些事情:

(1)你需要在每个上传表单中设置一个标志(隐藏变量是一个好方法),以便你知道将文件存储在哪个文件夹中。我们称之为标志upload_target

在您的控制器中:

(2)upload_target从post变量中获取

(3) 根据值upload_target,根据需要设置upload_config 值,然后加载/初始化上传类。

upload_config值的放置
位置 如果您尝试在 config/upload.php 中定义二维数组,库加载器可能会感到困惑。

相反,定义一个名为upload_settings.php并定义以下数组的配置文件:

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

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

在您的上传控制器中,您将执行以下操作:

$this->config->load('upload_settings', TRUE); 

根据upload_target您从表单的 post 变量中获得的值:

$upload_config_values = $this->load->config('target1','upload_settings'); 

或者

$upload_config_values = $this->load->config('target2','upload_settings');

您现在可以加载或初始化您的上传类:

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

我把它写成元代码给你一个可行方法的大纲。

设置隐藏值标志/参数
对于您用于上传文件的每个表单,添加一个隐藏值,如下所示。
对于第一种形式:

对于第二种形式:

从 post 变量中获取upload_target值并根据该值选择正确的配置文件。

于 2013-03-19T19:37:56.670 回答
0

在上传.php

 $config['first']['upload_path'] = realpath('x');
    $config['first']['allowed_types'] = 'gif';
    $config['first']['max_size'] = '1048';
    $config['first']['max_width']  = '1024';
    $config['first']['max_height']  = '768';

同样的第二

 $config['second']['upload_path'] = realpath('x');
....
..

和在控制器中

$this->load->config('upload_values', TRUE);

$upload_values = $this->config->item('first');

$this->load->library('upload', $upload_values);
于 2013-03-19T17:16:29.400 回答