2012-02-21 56 views
1

我想使用/config/upload.php配置我的上傳。但是,我的一些配置項目會因情況而異。在大多數情況下,上傳目錄是動態設置的(例如,它包含用戶的ID,使用隨機文件夾等)。有時候,可以上傳的文件類型將會有所不同(例如,只有一張照片有照片,另一張照片只有照片)。CodeIgniter,上傳和配置

我可以把一般的配置項放在/config/upload.php中,並在以後添加/重寫某些東西嗎?如果是這樣,怎麼樣?

回答

7

在您用於上傳的控制器中,您只需重新定義上傳庫的選項並重新初始化它們即可。

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

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

// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class: 
$this->upload->initialize($config); 

你將失去​​所有的預定義的配置項目我敢肯定,所以你需要重做那些

UPDATE

尋找到經過這一點這是可能的。如果您查看Upload庫,那麼您可以在set的某些變量中使用函數。所有功能都沒有set功能,它們可能不全都是您可以使用的set功能。所以你可以做這樣的事情。

$this->load->library("Upload"); // loads upload library with predefined config items in config/upload.php 

//to change upload path 
$this->upload->set_upload_path("new location"); 
//CANNOT DO THIS BECAUSE ITS USED IN do_upload function you would need to extend the upload library and create your own set function. 
$this->upload->set_filename("new filename"); 

$this->upload->do_upload(); 

其他看起來像可用於設定值

set_max_filesize 
set_max_filename 
set_max_width 
set_max_height 
set_allowed_types 
+0

那不是我想做的事情。我只是想重寫某些配置值。如果我每次上傳都要這樣做,那麼在/config/upload.php中沒有任何意義。 – StackOverflowNewbie 2012-02-22 03:26:32

+0

@StackOverflowNewbie我已經更新了我的答案 – Henesnarfel 2012-02-22 16:27:22

+0

@Henesnarfel這很好。謝謝:)我用abmove方法重新定義允許的文件類型。 – fl3x7 2012-05-25 12:11:36