2010-03-04 69 views
2

我想擴展CodeIgniter中的上傳庫。我一直在嘗試整個上午,繼各種調查和論壇帖子,但不能得到它的工作。在CodeIgniter中擴展庫問題

如果我直接將函數添加到Upload.php庫中,它可以工作 - 但我知道這不是正確的方法,並且希望做到這一點,因爲我正在做它。

這裏是擴展的內容[系統/應用/庫/ MY_Upload.php]:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Upload extends Upload{ 
function MY_Upload(){ 
    parent::Upload(); 
} 
    function mupload($configs,$files){ 
    if(count($configs) != count($files)){ 
     return 'array_count_wrong'; 
    } 
$retArr=array(); 
    for($i=0, $j = count($files);$i<$j;$i++){ 
     $this->initialize($configs[$i]); 
     if(!$this->do_upload($files[$i])){ 
      array_push($retArr,$this->display_errors()); 
     }else{ 
      array_push($retArr,'OK'); 
     } 
    } 
    return($retArr); 
} 

>

及相應的控制代碼:

$this->load->library('upload'); 
$messages=$this->upload->mupload($config,$files); 

它無法沒有跡象表明爲什麼。

我在做什麼錯?

Thx。

回答

2

在末端延伸

缺少一個受詛咒的}:'(

我真的真的很希望有一種方式來獲得更多的信息的錯誤信息(或根本任何消息)時,事情會失敗...

+2

您可以在開發環境中啓用PHP錯誤報告(http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting);另外,使用合適的語法突出顯示的良好編輯器或IDE可以幫助您捕獲像所描述的語法錯誤。 – gpmcadam 2010-03-04 23:13:05

+0

錯誤報告是最明確的。設置爲11,甚至。我使用TextMate(它是I lub),但它似乎並不突出顯示塊,只是函數,變量,數組等。如果您試圖放置沒有匹配的開口支架的閉合支架,但它不會閃爍在處理10k行代碼時非常有幫助。謝謝。 – stormdrain 2010-03-09 16:58:07

+0

你可能更喜歡另一個編輯器,比如vim。 vim的靜態分析功能更強大:http://stackoverflow.com/questions/378959/is-there-a-static-code-analyzer-like-lint-for-php-files。 – g33kz0r 2010-12-17 21:55:06

2

幾個在這裏建議的額外位。

  1. 您應該CI_Upload延長不上傳
  2. 您只需要添加一個帶有parent :: CI_Upload的構造函數;如果你真的在你的控制器中做某件事。刪除函數MY_Upload(),因爲你不需要它。 :-)

很高興你解決了你的主要問題!

+0

確實。大部分時間我都有CI_,但是當我複製代碼以粘貼到這裏時,我沒有。它現在在:) 我也刪除了MY_Upload函數。雖然我不清楚爲什麼......你說「如果你真的在你的控制器中做某件事」。我想我正在做我的控制器中的東西,不是嗎?你的意思是直接在控制器中調用父類中的函數嗎?謝謝。 – stormdrain 2010-03-09 17:02:35

+0

很抱歉用構造函數替換了字控制器。基本上,如果你創建自己的構造函數,那麼你需要首先調用父類構造函數,就像你在繼承類的子類中創建一個函數時基本上替代它一樣。如果您在MY_類中沒有使用構造函數,那麼您不需要在其中放置一個空構造函數。:-) – 2010-03-10 09:58:32