Codeigniter 代码点火器文件上载

Codeigniter 代码点火器文件上载,codeigniter,file-upload,Codeigniter,File Upload,我正在从两个不同的视图上传图像,因此在库下的自动加载中,我包含了上载 我在config中有一个名为upload.php的文件。从这里我传递参数,如大小、文件类型等 if( ??){ $config['upload_path'] = realpath('x'); $config['allowed_types'] = 'gif'; $config['max_size'] = '1048'; $config['max_width'] = '1024'; $conf

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

我在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';


              }
现在,因为有两个地方我上传,我有一个不同的文件大小,类型参数,我的控制器如何知道采取哪一个。如果{}否则{条件,我应该放什么

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

在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) 您需要在每个上传表单中设置一个标志(隐藏变量是一个好方法),以便 知道要将文件存储在哪个文件夹中。让我们将此标志称为
upload\u target

在控制器中:

(2) 从post变量中获取
upload\u target

(3) 根据值
upload\u target
,根据需要设置upload\u config值 然后加载/初始化上载类

在哪里放置
上传配置值

如果试图在config/upload.php中定义二维数组,库加载器可能会感到困惑。

相反,请定义名为
upload\u 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\u target
的值:

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

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

$this->load->library('upload', $upload_config_values);
我写这篇文章是为了给你一个可行方法的大纲

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

第二种形式:


从post变量中获取
upload\u target
值,并根据该值选择正确的配置文件。

在这种情况下,您应该在控制器中设置配置数组的值,而不是通过config/upload.php。您可以在每个视图中使用不同值的隐藏输入字段,并让if-else检查是否存在错误that@JohnB:呵呵我可以这样做吗?你能给我一个小片段吗。我的upload.php在config文件夹下,所以你的东西可以工作。输入将在html表单的视图文件中,并在表单打开时与文件一起发布submitted@ram接下来,我向你们发布了一些关于之前问题的详细答案。请回顾一下,如果你们解决了问题,请告诉我。谢谢!什么是$this->load->config('upload_values',TRUE);上传_值。web应用程序中允许的最大宽度和最大高度的最佳做法是什么。我认为这取决于上传图像的目的。:什么是$this->load->config('upload_values',TRUE);upload_values在此中。upload_values是我们放入上载库$this->config->item('first')中的配置文件;将在配置中放置第一个数组值file@Aruna:upload_values是配置文件不清楚。是文件名还是什么?:我得到这个错误,上传路径似乎无效。我将“upload”放在autoload.php中。我没有理解隐藏的值,我应该在值、名称中输入什么。你能更新你的问题并发布你的
conf吗ig/upload.php
,我想看看路径和设置是什么样的。我在回答中添加了一个关于隐藏值的解释。回显
realpath('./x/images')
并仔细检查路径。文件夹
x
是在根目录中还是在外部?
//code>可能是问题所在。
$this->load->library('upload', $upload_config_values);