2010-06-30 105 views
2

我創建了一個處理文件帖子,將上傳的文件移動到index.php文件旁邊的文件夾(不在應用程序文件夾中,因爲我想直接通過文件HTTP)。文件上傳工作在Windows上,但不是在Linux上

上傳在基於Windows的服務器上完美工作,但不在Linux上。每個服務器和我的本地機器上的PHP版本仍然相同。

代碼:

$config['upload_path'] = 'files/pictures/'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '10240'; 
    $config['encrypt_name'] = true; 

    $this->upload->initialize($config); 

    if (! $this->upload->do_upload('Filedata')) 
    { 
     //error handling 
    } 
    else 
    { 
     $data = array('upload_data' => $this->upload->data()); 
     imageResize($data['upload_data']['full_path'],600); 
    } 

正如你可以看到它沒有什麼特別,它是一個基於CI一個普通的圖片上傳。 爲什麼我在Linux上遇到錯誤?

我嘗試了幾種使用上傳路徑的方法,但都沒有工作。 Folder has chmod 777.

$config['upload_path'] = './files/pictures/'; 
    $config['upload_path'] = './files/pictures'; 
    $config['upload_path'] = 'files/pictures/'; 
    $config['upload_path'] = 'files/pictures'; 

這些在Linux下都不行。

+1

你會得到什麼錯誤? – 2010-06-30 07:01:31

+0

那麼你有什麼錯誤? 你確定權限設置正確嗎? – quantumSoup 2010-06-30 07:02:21

+0

我得到的錯誤如下:'臨時文件夾丟失.' codeigniter – 2010-06-30 07:04:41

回答

4

缺少臨時目錄。上傳的文件首先被移至臨時目錄,然後移至其目的地。目錄名稱可能在某處配置,或者您可以在文檔中找到它。該目錄在Linux服務器上不存在,並且存在於Windows服務器上。

+0

檢查臨時上傳文件夾是否存在,並且apache用戶有寫訪問權限。請參閱上述問題的@Aircule註釋,通常通過在php.ini中設置upload_tmp_dir來配置它。 – wimvds 2010-06-30 07:23:10

+0

這是問題所在。 Theres沒有臨時文件夾。 – 2010-06-30 07:34:45

相關問題