2013-07-21 65 views
1

我想上傳視頻服務器上使用Codeigniter,在本地我可以做到這一點,但是當它在服務器中不起作用。即使​​3210函數返回true。Codeigniter服務器根

當我測試服務器的根,print_r($_SERVER['DOCUMENT_ROOT']);它返回

/var/www/mjpp/data/www/supps.mydomainname.com

另外, $updata = $this->upload->data();回報

[file_path] => /var/www/mjpp/data/www/supps.mydomainname.com/public/video

你能告訴我爲什麼/var/www/mjpp/data/之前我主要出現域名,這是上傳視頻的任何錯誤的原因?

預先感謝您,對不起我的英語不好。

回答

0

當文件上傳時,不需要使用Document Root,Codeigniter自身的配置。

下面是圖片上傳的代碼示例,

function do_upload() 
{ 
    $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); 

    if (! $this->upload->do_upload()) 
    { 
     $error = array('error' => $this->upload->display_errors()); 

     $this->load->view('upload_form', $error); 
    } 
    else 
    { 
     $data = array('upload_data' => $this->upload->data()); 

     $this->load->view('upload_success', $data); 
    } 
} 

你只需要改變配置($配置陣列),爲您的問題,您應該使用$配置[「upload_path」]。

關注codigniter文件上傳tutorial

+0

謝謝,但我需要知道爲什麼/ var/www/mjpp/data /出現在我的主域名之前。你能告訴我嗎? – user2603482

+0

正在執行當前腳本的文檔根目錄,如服務器的配置文件中所定義。所以這就是他們在真實服務器中配置的方式,您沒有獲得專用空間,您與其他人共享空間。 –

0

不要在CI使用$ _ SERVER [ 'DOCUMENT_ROOT'],用URL助手

$this->load->helper('url'); 

echo base_url(); 
+0

謝謝,我可以使用'base_url()'像'base_url()images/upload/path /'這樣的文件路徑嗎? – user2603482

+0

是的,但創建$ path = base_url()。'images/upload/path /'; –

+0

感謝您的評論。 – user2603482

1

/var/www/mjpp/data/www/supps.mydomainname.com是在一般的系統文檔根目錄的絕對位置。但是,您通常無法訪問您的用戶目錄上的任何內容。

public/video/var/www/mjpp/data/www/supps.mydomainname.com/public/video(作爲絕對路徑)是您通過Upload庫作爲upload_path。這是圖書館將嘗試上傳文件的地方。這個文件夾應該存在並且是可寫的(例如對其具有0777權限)。