你的代碼必須做幾件事情:
(1 )你需要設置一個標誌(hidd恩變量是一個很好的方式)在每個上傳的形式,讓你 知道哪個文件夾來存儲文件讓我們把這個標誌upload_target
在你的控制器:
(2)獲取upload_target
從POST變量
(3)根據值upload_target
,根據需要設置upload_config值 ,然後加載/初始化上載類。
哪裏擺放upload_config
值
如果您嘗試定義的config/upload.php的一個2維數組,庫加載可能會感到困惑。
取而代之的是,被稱爲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
值你從表單的帖子變量中獲得:
$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
值,並挑選基於價值的正確配置文件。
在這種情況下,您應該在控制器中設置config數組的值,而不是通過config/upload.php。 – Mischa 2013-03-19 16:58:29
你可以在每個視圖中使用不同值的隱藏輸入字段,並有if if檢查 – Rooster 2013-03-19 17:07:18
@John B:我該怎麼做?你能給我一個小片段嗎?我的upload.php是在config文件夾下,所以你的東西會起作用。 – ram 2013-03-19 17:10:10