代码点火器文件上传

时间:2013-03-19 16:54:48

标签: codeigniter file-upload

我从两个单独的视图上传图片,所以在图书馆的自动加载中,我已经包含上传

我在config中有一个名为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';


              }

既然我上传了两个地方,我有不同的文件大小,类型参数,我的控制器如何知道要采取哪一个。如果{} else {]条件,我应该放什么。

请告诉我,如果我不清楚的话。

2 个答案:

答案 0 :(得分:0)

在upload.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);

答案 1 :(得分:0)

您的代码必须执行以下操作:

(1)你需要在每个上传表单中设置一个标志(隐藏变量是一种好方法) 知道存储文件的文件夹。让我们调用此标志upload_target

在您的控制器中:

(2)从帖子变量中获取upload_target

(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); 

取决于您从表单的post变量获得的upload_target的值:

$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);

我把它写成元代码,为你提供一个可行方法的概述。

设置隐藏值标记/参数
对于用于上传文件的每个表单,请按如下方式添加隐藏值 对于第一种形式:

和第二种形式:

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