2014-02-18 13 views
0

我正在使用Codeigniter框架的文件上傳功能。用戶使用上傳csv文件和上傳後,我需要閱讀數據,但隨着文件上傳他們不可讀,所以任何人都可以告訴我爲什麼這是造成的合適的原因?上傳後文件不可讀

我也檢查文件的權限,他們是755

下面是代碼:

$config['upload_path'] = 'public/uploads/data'; //path to store file 
    $config['allowed_types'] = 'csv|xls'; // file type can only be csv and xls 
    $config['max_size'] = '1000'; // maximum file size  
    $this->load->library('upload', $config); 
    if (!$this->upload->do_upload()) { 
     $error = array('error' => $this->upload->display_errors(), 'path' => $config['upload_path']); 
     $this->load->view('merchant/account/upload_fail', $error); 
    } else { 
     $data = array('upload_data' => $this->upload->data()); 
     $filename = '/public/uploads/data/' . $data['upload_data']['file_name']; 
     $delimiter = ","; 
     if (!file_exists($filename) || !is_readable($filename)) { // some error occur 
      echo 'got an error'; 

     } else { 
       echo 'file is readable'; 
     } 
    } 
+1

您是否嘗試打開該文件,而無需使用PHP來閱讀:

你可以用也可以嘗試?即通過SSH'到盒子,然後使用'vim','nano'等來查看它? – ajtrichards

+2

試着給我們提供更多的細節,例如你用來上傳文件的代碼 – Pattle

+0

好吧,我還會添加代碼,以便你清楚明白。 –

回答

0

文件系統通常會進入只讀,而在系統運行,如果有是一個文件系統一致性問題。這在fstab中指定爲errors = remount-ro,並且在FS訪問失敗或通過Alt + SysRq + U請求緊急只讀重新安裝時發生。您可以運行:

sudo fsck -Af -M 

強制檢查所有文件系統。作爲其他答案之一,看dmesg也是很有幫助的。

編輯:不要忘記命令行上的-M。

mount -o remount/