2013-03-19 96 views
-1

我從兩個單獨的視圖上傳圖像,所以在自動加載下庫,我已包括上傳代碼點火器文件上傳

我在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 {}條件應該輸入什麼內容。

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

+1

在這種情況下,您應該在控制器中設置config數組的值,而不是通過config/upload.php。 – Mischa 2013-03-19 16:58:29

+0

你可以在每個視圖中使用不同值的隱藏輸入字段,並有if if檢查 – Rooster 2013-03-19 17:07:18

+0

@John B:我該怎麼做?你能給我一個小片段嗎?我的upload.php是在config文件夾下,所以你的東西會起作用。 – ram 2013-03-19 17:10:10

回答

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); 
+0

什麼是$ this-> load-> config('upload_values',TRUE); upload_values在這。在web應用程序中允許的max_width和max_height的最佳做法是什麼? – ram 2013-03-19 17:24:44

+0

我認爲這取決於上傳圖像的目的。 – Arunu 2013-03-19 17:29:27

+0

:什麼是$ this-> load-> config('upload_values',TRUE); upload_values在這。 – ram 2013-03-19 17:32:35

0

你的代碼必須做幾件事情:

(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值,並挑選基於價值的正確配置文件。

+0

:我得到這個錯誤上傳路徑似乎不是有效的。我在autoload.php中添加了「上傳」。我沒有站在隱藏價值的東西,我應該把什麼價值,名稱。 ram 2013-03-20 05:16:04

+0

你可以更新你的問題併發布你的'config/upload.php',我想看看路徑和設置的樣子。我在答案中添加了關於隱藏值的解釋。 – 2013-03-20 10:44:49

+0

:realpath('./ x/images'); – ram 2013-03-20 10:48:24